C++中继承关系——菱形继承
二进制浮游 2011-07-06 12:10:18 新手求教类的继承关系问题,代码如下:
#include <iostream>
using namespace std;
class Base { //基类
public:
void virtual print(void)
{
cout << "base!" <<endl;
}
};
class child1 :virtual Base {
public:
void virtual print(void)
{
cout << "child1" << endl;
}
};
class child2 :virtual Base {
public:
void virtual print(void)
{
cout << "child2" <<endl;
}
};
class child3 :public child1 , child2 {
};
int main()
{
Base base;
child1 ch1;
child2 ch2;
base.print();
ch1.print();
ch2.print();
child3 ch3;
return 0;
}
编译报错,怎么避免(不考虑在类 child3 中写print函数)?
错误提示:“错误:‘virtual void Base::print()’的最终重载在child3中不唯一”