• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の継承の曖昧さの解決について教えてください)

C++の継承の曖昧さの解決について教えてください

このQ&Aのポイント
  • C++の継承における曖昧さの解決方法を教えてください。
  • C++の継承で発生する曖昧さを解消する方法を教えてください。
  • C++で複数のクラスを継承する場合の曖昧さを解決する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> なぜこれでコンパイルが通るのか virtual のつかないとき、 class bass {}; class Ex1 : public bass{}; class Ex2 : public bass{}; class Ex3 : public Ex1, public Ex2{}; Ex3はbassを"ふたつ"持っています。 Ex1の基底とEx2の基底とね。 なのでEx3からbassにキャストする際、 どちらのbassにするのか曖昧です。   +-- Ex1 -- bass   | Ex3 +   |   +-- Ex2 -- bass virtualがついていれば、bassが共有されひとつになる ので、キャスト値が一意に決まるのです。    +-- Ex1 --+    |     | Ex3 --+     +-- bass    |     |    +-- Ex2 --+

0xEF
質問者

お礼

親切にありがとうございます。 なるほど、そういうことでしたか! 勉強になりました!ありがとうございました!

その他の回答 (1)

回答No.1

↓こんなんでいかがでしょ。 class Ex1 : virtual public bass{}; class Ex2 : virtual public bass{};

0xEF
質問者

お礼

ありがとうございます! コンパイルが通りました。 もしよろしければなぜこれでコンパイルが通るのかを説明していただけると今後の糧にしやすいのですが・・・ 説明お願いできませんでしょうか?

関連するQ&A