多重继承可以被视为多个单一继承的组合,所以在分析 多重继承的情况下,虚函数调用方式可参考单一继承中的调用方式。
例:
#include <iostream>
using namespace std;
class A
{
public:
virtual void show()
{
cout<<"The show in A."<<endl;
}
};
class B
{
public:
void show()
{
cout<<"The show in B."<<endl;
}
};
class C:public A,public B
{
public:
void show()
{
cout<<"The show in C."<<endl;
}
};
int main(int argc, const char * argv[])
{
A *paobj;
B *pbobj;
C *pcobj;
C cobj;
paobj=&cobj;
paobj->show();//调用c的show
pbobj=&cobj;
pbobj->show();//调用B的show
pcobj=&cobj;
pcobj->show();//调用自己的的show
return 0;
}