C ++でクラスFooを定義して、次のようにする方法はありますか?
- 私はそれから継承することができます
- そこから「ダイヤモンド継承」できない
つまり
class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
C ++でクラスFooを定義して、次のようにする方法はありますか?
つまり
class Cat: public Foo{} // okay
class Dog: public Foo{} // okay
class Weird: public Cat, public Dog {} // I want this to throw a compiler error
Cprogramming.com チュートリアル: C++ でダイヤモンド問題を解決するには ...
http://www.cprogramming.com/tutorial/virtual_inheritance.html
これを試して
このタイプの問題については、インターフェイスによって回避または解決できます。
別の情報源:
http://www.parashift.com/c++-faq-lite/multiple-inheritance.html
実際、C++ でプログラミングしている場合は、C++ のよくある質問全体を読む価値があります。