【发布时间】:2013-05-13 11:15:17
【问题描述】:
如何在不继承类 A 的情况下从类 D 使用类 A 中的函数和(尽管我理解这是不好的做法,但我根本不允许更改继承)并且不删除从 D 中的 C 和 B 的继承?我似乎无法找到解决成员请求的方法是模棱两可的错误。我(错误地)理解,无论距离多远
class A
{
public:
void DoEverything(int){ }
};
class B : public A
{
public:
...
};
class C : public A
{
public:
...
};
class D : public C : public B
{
public:
...
};
int main()
{
D dMan;
int i = 2;
dMan.DoEverything(i);
}
我的示例大致基于此处的“模糊基类(仅限 C++)”示例:http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/topic/com.ibm.xlcpp8a.doc/language/ref/cplr138.htm#cplr138,但这并没有帮助我理解问题。
【问题讨论】:
-
您正面临钻石继承问题。看看这篇文章:stackoverflow.com/questions/379053/diamond-inheritance-c
标签: c++ inheritance ambiguous