菱形继承

90 阅读1分钟

*菱形继承概念:

​ 两个派生类继承同一个基类

​ 又有某个类同时继承者两个派生类

​ 这种继承被称为菱形继承,或者钻石继承

例子

class Animal{
    public:
        int age;
};

class Sheep : public virtual Animal{};

class Tuo : public virtual Animal{};

class SheepTuo : public Sheep, public Tuo{};

void test_sheep_tuo_case(){
    SheepTuo st;
    st.age = 100;
    std::cout << st.age << std::endl; // 100
}


int main(){
    test_sheep_tuo_case();
    return 0;
}