49_多繼承

多繼承的格式

class 子類: 繼承方式1 父類名1,繼承方式2 父類名2,繼承方式3 父類名3,....
{

};
//表示子類 是由 父類名1,父類名2,父類名3...共同派生出來
class Base1
{
public:
    int a;
};
class Base2
{
public:
    int b;
};

class Son:public Base1,public Base2
{
    //Son類 擁有了a  b
};
int main(int argc, char *argv[])
{
    Son ob;
    ob.a = 100;
    ob.b = 200;
    return 0;
}

多繼承容易產生二義性: (解決辦法1 使用作用域)

class Base1
{
public:
    int a;
};
class Base2
{
public:
    int a;
};

class Son:public Base1,public Base2
{

};
int main(int argc, char *argv[])
{
    Son ob;
    //ob.a = 100;//err Base1 和 Base2中都有a成員同名
    //解決辦法:加作用域
    ob.Base1::a = 100;
    ob.Base2::a = 200;
    return 0;
}

 

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