#include<iostream>
using namespace std;
class Base1
{
public:
virtual void Test()
{
cout<<"Base1 Test()"<<endl;
}
};
class Base2
{
public:
virtual void Test()
{
cout<<"Base2 Test()"<<endl;
}
};
class Derived :public Base1, public Base2
{
public:
void Test() // 直接重写虚函数Test()
{
cout<<"Derived Test()"<<endl;
}
};
int main()
{
Derived D;
D.Base1::Test();
D.Test();
Base1 *pB1 = &D;
Base2 *pB2 = &D;
Base1 b1;
b1.Test();
pB1->Test(); //用基类指针pB1调用类Derived 的TestA()函数
pB2->Test(); //用基类指针pB2调用类Derived的TestB()函数
return 0;
}
using namespace std;
class Base1
{
public:
virtual void Test()
{
cout<<"Base1 Test()"<<endl;
}
};
class Base2
{
public:
virtual void Test()
{
cout<<"Base2 Test()"<<endl;
}
};
class Derived :public Base1, public Base2
{
public:
void Test() // 直接重写虚函数Test()
{
cout<<"Derived Test()"<<endl;
}
};
int main()
{
Derived D;
D.Base1::Test();
D.Test();
Base1 *pB1 = &D;
Base2 *pB2 = &D;
Base1 b1;
b1.Test();
pB1->Test(); //用基类指针pB1调用类Derived 的TestA()函数
pB2->Test(); //用基类指针pB2调用类Derived的TestB()函数
return 0;
}
本文探讨了在C++中,当一个派生类从多个基类继承,而基类中存在同名虚函数时,如何处理这种情况。通过一个实例展示了如何在派生类中重写这些虚函数,并通过基类指针调用相应的函数,展示多态性。
588

被折叠的 条评论
为什么被折叠?



