Description
下面是不完整的继承类定义,需要补充或增加完整的构造函数、析构函数、void fun()
class A
{
void g()
{
fun();
}
};
此外该类需要定义函数 fun() ,实现输出:Call class A's fun
class B
{
};
继承来自于基类A,同时补充完整类B
class C
{
};
继承来自类B,同时还有函数fun,使其输出:Call class C's fun
int main()
{
A *a=new C;
a->g();
delete a;
return 0;
}
输出结果:
A constructor
Call class A's fun
B constructor
C constructor
Call class C's fun
C destructor
B destructor
A destructor
Input
none
Output
none
Hint
只需要提交类A、B、C的定义与实现
#include<iostream>
using namespace std;
class A
{
public:
A(){
cout<<"A constructor"<<endl;
g();
}
virtual ~A(){
cout<<"A destructor"<<endl;
}
virtual void fun(){
cout<<"Call class A's fun"<<endl;
}
virtual void g(){
fun();
}
};
class B:
public A
{
public:
B(){
cout<<"B constructor"<<endl;
}
~B(){
cout<<"B destructor"<<endl;
}
};
class C:
public B
{
public:
C(){
cout<<"C constructor"<<endl;
}
~C(){
cout<<"C destructor"<<endl;
}
void fun(){
cout<<"Call class C's fun"<<endl;
}
virtual void g()
{
fun();
}
};
int main()
{
A *a=new C;
a->g();
delete a;
system("pause");
return 0;
}
conclusion:关于继承与多态的问题还会继续学习