gpt4 book ai didi

c++ - 实例化子类的多态性问题

转载 作者:行者123 更新时间:2023-11-28 06:09:12 25 4
gpt4 key购买 nike

我有一个抽象基类 Company 和 2 个子类 fProfitNfprofitCompany我尝试实例化任一子类时出现以下错误。

C:\Qt\Qt5.3.0\Tools\QtCreator\bin\test\nfprofit.cpp:19: error: prototype for 'QString Nfprofit::getName()' does not match any in class 'Nfprofit'
QString Nfprofit::getName() {
^

C:\Qt\Qt5.3.0\Tools\QtCreator\bin\test\nfprofit.h:17: error: candidate is: virtual QString Nfprofit::getName() const
QString getName() const;
^

CompanyNfprofit 的标题如下。知道我做错了什么吗?

代码:

class Company {
public:
virtual QString getName() const = 0;
virtual QString getDateFormed() const = 0;
virtual QString toString() const = 0;
};

class Nfprofit : public Company
{
public:
Nfprofit(QString name, QString date, bool charitable);

//setters
void setName(QString name);
void setDateFormed(QString date);
void setCharitableStatus(bool charitable);

//getters
QString getName() const;
QString getDateFormed() const;
QString getCharitableStatus() const;

QString toString() const;
private:
QString m_name, m_dateFormed;
bool m_charitable;
};

最佳答案

这是错误消息告诉您的内容:

您的成员声明为 const:

QString getName() const;

但是你的定义不是const:

QString Nfprofit::getName() { .... }

你需要让它成为const:

QString Nfprofit::getName() const { .... }
^^^^^

关于c++ - 实例化子类的多态性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31624533/

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