两个类继承于同一个基类,并共享基类的数据,即内存。代码如下:
#includeusing namespace std; //--------------------------------------------------------------------------- class Atest { //基类 public: int i; }; class Btest :virtual public Atest//继承时使用了virtual关键字 { //继承类 public: void set(int value) { i = value; } void show() { cout << i <
这个一个棱形类的继承结构,如果去掉virtual关键字,会出现二义性,编译出错。采用虚基类后,中间任何一个子类改写基类数据i,另一个类型都能读出同样的数据。