#include <stdio.h>
#include <iostream>
class A
{
public:
/* data */
virtual Aoo(){printf("this is base A function\n");}
};
class B
{
public:
/* data */
virtual Boo() {printf("this is base B virtual function\n");}
};
class C :public A,public B
{
public:
/* data */
virtual Aoo() {printf("this is child C function inherit A classo \n");}
};
int main()
{
A* a_p = new C();
a_p->Aoo();
((B*)a_p)->Boo();
system("pause");
return 0;
}
#include <iostream>
class A
{
public:
/* data */
virtual Aoo(){printf("this is base A function\n");}
};
class B
{
public:
/* data */
virtual Boo() {printf("this is base B virtual function\n");}
};
class C :public A,public B
{
public:
/* data */
virtual Aoo() {printf("this is child C function inherit A classo \n");}
};
int main()
{
A* a_p = new C();
a_p->Aoo();
// B* b_p = new C(); 将基类的指针指向子类开辟的空间,这个空间里包括继承基类的成员和子类独有的成员,
//但是b_p的指针类型是基类,只能
// b_p->Aoo(); 读取从基类继承的成员和函数,不能存取子类自己声明的东西,因为基类指针并不知道子类有哪些扩展。((B*)a_p)->Boo();
system("pause");
return 0;
}