50_菱形繼承

具有公共祖先 的多繼承

class Animal
{
public:
    int data;
};

class Sheep:public Animal
{
public:
};
class Tuo:public Animal
{
public:
};

class SheepTuo:public Sheep,public Tuo
{
public:
};
int main(int argc, char *argv[])
{
    SheepTuo st;
    //SheepTuo 從Sheep中繼承data  從Tuo繼承data 就產生二義性
    //st.data = 200;//err
    //第一中方式:加作用域解決
    st.Sheep::data = 200;
    st.Tuo::data = 300;

    return 0;
}

普通繼承:

class Animal
{
public:
    int data;
};

class Sheep:public Animal
{
public:
};

class Tuo:public Animal
{
public:
};

class SheepTuo:public Sheep,public Tuo
{
public:
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章