2 回答
TA贡献1982条经验 获得超2个赞
class A
//A类声名
{
public:
//公共成员
void virtual read()
//read的虚函数
{
cout<<"base class A";
//输出“base class A”
}
};
class B:public A
//B类声名,继承A
{
public:
void read()
//重写read(必须重写,因为前面是虚函数)
{
cout<<"derived class B";
//输出“derived class B”
}
};
int main()
//主程序进入
{
B obj();
//建立B类的obj对象
clrscr();
//调用clrscr(你给的代码里没有这个的声名)
obj.read();
//调用obj对象的read对象
getch();
}
//以下部分全是你本来有的注释
/*int main()
{
B obj;
obj.read();
return 0;
}*/
int main()
{
B obj;
obj.A::read();
cout<<"\n";
obj.B::read();
return 0;
}
/*int main()
{
A obj1;
B obj2;
A*ptr;
ptr=&obj1;
ptr->read();
cout<<"\n";
ptr=&obj2;
ptr->read();
return 0;
}*/
TA贡献1852条经验 获得超1个赞
不知道这么多main函数干嘛的,就是多态性测试吧,让基类对象指针指向派生类的read函数
class A
{
public:
void virtual read()//虚函数
{
cout<<"base class A";
}
};
class B:public A
{
public:
void read()//继承 实现虚函数
{
cout<<"derived class B";
}
};
void main()
{
A *a;//基类指针
B obj;//派生类对象
a=&obj;//动态编联 调用派生类的read函数
a->read();//输出derived class B
getch();
}
- 2 回答
- 0 关注
- 381 浏览
添加回答
举报