- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の継承の曖昧さの解決について教えてください)
C++の継承の曖昧さの解決について教えてください
このQ&Aのポイント
- C++の継承における曖昧さの解決方法を教えてください。
- C++の継承で発生する曖昧さを解消する方法を教えてください。
- C++で複数のクラスを継承する場合の曖昧さを解決する方法を教えてください。
- みんなの回答 (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 --+
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
↓こんなんでいかがでしょ。 class Ex1 : virtual public bass{}; class Ex2 : virtual public bass{};
質問者
お礼
ありがとうございます! コンパイルが通りました。 もしよろしければなぜこれでコンパイルが通るのかを説明していただけると今後の糧にしやすいのですが・・・ 説明お願いできませんでしょうか?
お礼
親切にありがとうございます。 なるほど、そういうことでしたか! 勉強になりました!ありがとうございました!