Swi*_*ick 1 c++ inheritance ambiguous
如何在不继承类 A 的情况下使用类 A 中的函数而不继承类 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);
}
Run Code Online (Sandbox Code Playgroud)
我的示例大致基于此处找到的“模糊基类(仅限 C++)”示例:http : //publib.boulder.ibm.com/infocenter/comphelp/v8v101/topic/com.ibm.xlcpp8a.doc/language/ ref/cplr138.htm#cplr138但这并没有帮助我理解问题。
首先,要使其工作,只需进行以下更改
B类:虚拟公共A ...
C类:虚拟公共A
多重继承中的这个问题称为菱形问题。查看此链接以了解更多信息 http://www.cprogramming.com/tutorial/virtual_inheritance.html
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |