クラス 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しかし、それでは問題を理解できませんでした。