14

C ++でクラスFooを定義して、次のようにする方法はありますか?

  1. 私はそれから継承することができます
  2. そこから「ダイヤモンド継承」できない

つまり

class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
4

2 に答える 2

6

Cprogramming.com チュートリアル: C++ でダイヤモンド問題を解決するには ...

http://www.cprogramming.com/tutorial/virtual_inheritance.html

これを試して

このタイプの問題については、インターフェイスによって回避または解決できます。

于 2010-02-23T05:15:03.857 に答える
1

別の情報源:

http://www.parashift.com/c++-faq-lite/multiple-inheritance.html

実際、C++ でプログラミングしている場合は、C++ のよくある質問全体を読む価値があります。

于 2010-02-23T07:59:00.363 に答える