1

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

4

1 に答える 1