多繼承的格式
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;
}