在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数。下面就是一个例子:
class CBaseA
{
public:
virtual void TestA();
};
class CBaseB
{
public:
virtual void TestB();
};
class CDerived : public CBaseA, public CBaseB
{
public:
virtual void TestA(); // 重写基类CBaseA中的虚函数TestA()
virtual void TestB(); // 重写基类CBaseB中的虚函数TestB()
};
void Test()
{
CDerived D;
CBaseA *pA = &D;
CBaseB *pB = &D;
pA->TestA(); // 调用类CDerived的TestA()函数
pB->TestB(); // 调用类CDerived的TestB()函数
}
可是,如果两个基类中有一个相同原型的虚函数,例如下面这样: