C++虚继承的意义和使用

虚继承:多个派生类保存相同基类的同名成员时,虽可以在不同的数据成员中分别存放不同的数据 ,但我们只需要相同的一份。

解决了多父类重复成员只保留一份的问题。


比如现在有一个沙发床,它既有床的属性又有沙发的属性,它们都有长宽高的属性,但是我们却只需要知道它的一个状态的属性。

它的一个长宽高能体现多个状态。


家具{

属性:长,宽,高;

}


沙发床:public 沙发,public 床{

属性:长,宽,高;

}


沙发:public 家具   ----》改为:沙发:virtual public 家具

{

属性:长,宽,高;

}


床:public 家具   ----》改为:床:virtual public 家具

{

属性:长,宽,高;

}

我们只需要他们的共同属性长宽高就行了,我们可以把共同属性提出来作为家具类,再由不同状态继承(虚继承),但最后都归总于沙发床。


#include 
using namespace std;

class Base{
public:
    Base(int d=100):data(d){
        cout<<"Base()"<


更改床、沙发、沙发床的长宽高它们的不同状态的长宽高都会发生变化。

你可能感兴趣的:(C/C++小技巧)