虚基类用法

来源:互联网 发布:数据可视化 地图 编辑:程序博客网 时间:2024/06/01 10:47
/*下面程序有一个基类A,有一个变量一个函数B继承了AC也继承了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;}