非必要不可的话,最好避免使用多重继承,以下例子未用多重继承
#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 中)
编译成功结束。
运行结果