非必要不可的話,最好避免使用多重繼承,以下例子未用多重繼承
#include <iostream>
using namespace std;
class base0
{
public:
virtual void fun0a()=0;
protected:
int var1a;
};
class base1:public base0
{
public:
void fun0a()
{
cout<<"base1 inheritance from base0"<<endl;
}
void fun1a();
protected:
int var1a;
};
class base2:public base1
{
public:
void fun0a()
{
cout<<"base2 inheritance from base0"<<endl;
}
void fun2a();
protected:
int var2a;
};
class base3:public base2
{
public:
void fun0a()
{
cout<<"base2 inheritance from base1 and base2"<<endl;
};
protected:
int var3a;
};
int main()
{
base0 *Ba0;
base3 ba1;
Ba0 = &ba1;
Ba0->fun0a();
return 0;
}
g++ -Wall -o "testcpp" "testcpp.cpp" (在目錄 E:\1_MYPROJECT\cTest 中)
編譯成功結束。
運行結果