私は C++ を学んでおり、学校の課題では、完全に正しくなくても、ダイヤモンド構造を使用する必要があります。
class Book
{
public:
virtual int getPurchasePrice() const;
protected:
int m_purchasePrice;
};
class AdultBook: virtual public Book{} ;
class ChildrenBook: virtual public Book{} ;
class ComicBook: public AdultBook, public ChildrenBook {} ;
(単純化するためにすべてのメソッドとコンストラクターを削除しました)
さて、コミックブックを作成してその購入価格を知りたい場合、どうすればよいでしょうか? ComicBook で getPurchasePrice() を実行すると、次のエラーが発生します。
error: request for member 'getPurchasePrice' is ambiguous
ChildrenBook と AdultBook に virtual を配置すると、あいまいさが解決されると思いましたか?