【发布时间】:2017-09-03 07:12:16
【问题描述】:
C++可以利用虚拟基类的概念来解决多重继承问题。但是我到处都看到用菱形问题来说明虚拟基类的使用。以下面给出的这个例子为例。这也是多重继承。但是如何使用虚拟基类来解决这个问题呢?这给出了编译错误。请有人指出我正在做的错误。 谢谢
#include<iostream>
using namespace std;
class Parent1 {
public:
void fun();
};
void Parent1::fun(){
cout<<"Parent1"<<endl;
}
class Parent2{
public: void fun()
{
cout<<"Parent2"<<endl;
}
};
class Child:public virtual Parent1,public virtual Parent2
{
};
int main()
{
Child c;
c.fun();
}
【问题讨论】:
-
多重继承是关于你从多个类派生的事实,而不是关于存在同名函数的事实。 多重继承问题不存在。
-
是的,你是对的。但我们最终可能会因此而面临这样的问题。这就是我想问的原因。
标签: c++