gpt4 book ai didi

c++ - 多重继承的麻烦。如何调用基函数?

转载 作者:行者123 更新时间:2023-11-27 23:20:40 25 4
gpt4 key购买 nike

我正在学习 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 并知道它的购买价格,我该怎么做?如果我在 ComicBook 上执行 getPurchasePrice(),我会收到以下错误:

error: request for member 'getPurchasePrice' is ambiguous

我认为为 ChildrenBook 和 AdultBook 放置 virtual 可以解决歧义?

最佳答案

你可以使用任何一个

obj->AdultBook::getPurchasePrice();

obj->ChildrenBook::getPurchasePrice();

obj->Book::getPurchasePrice();

对于ComicBook类型的obj

为 Emilio Garavaglia 编辑

假设您没有为成人和 child 书籍重新定义 getPurchasePrice,您可以使用这个

Key A - 成人读物,C - child 读物,CB - 漫画书,B - 书籍

enter image description here

关于c++ - 多重继承的麻烦。如何调用基函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13232316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com