一个基类,有两个派生类都继承它。最后还有一个类继承那两个派生类。那么最原始的基类就被继承了两次,这会引入二义性。为使在最后派生类中只有一个基类,使用虚基类可以达到这个效果
测试代码:
#include<iostream>
using namespace std;
class base{
public:
int l;
};
class derive1: virtual public base{
public:
int m;
};
class derive2:virtual public base{
public:
int n;
};
class derive :public derive1,public derive2{
public:
void show()
{
cout<<"l m n are /n"<<l<<endl<<m<<endl<<n<<endl;
}
};
int main()
{
derive cl;
cl.l=1;
cl.m=2;
cl.n=3;
cl.show();
return 0;
}
测试结果:
l m n are
1
2
3
请按任意键继续. . .