/*
下面程序有一个基类A,有一个变量一个函数
B继承了A
C也继承了A
如果D继承了B,C,那么D就有两份i,和2个show()函数,那它改选择谁呢?
所以我们就用到了虚继承,被继承的类叫做虚基类,class B:virtual public A
这样做,D就只有一份数据了
*/
#include "iostream"
using namespace std;
class A
{
public:
int i;
void show(){
cout<<"i="<<i<<endl;
}
};
class B:virtual public A
{
};
class C:virtual public A
{
};
class D:public B,public C
{
};
int main(int argc, char const *argv[])
{
A a;
B b;
C c;
D d;
a.i=1;
a.show();
b.i=2;
b.show();
c.i=3;
c.show();
d.i=4;
d.show();
/* code */
return 0;
}
虚基类用法
最新推荐文章于 2023-01-12 13:29:37 发布