gpt4 book ai didi

c++ - 警告:控制到达非无效函数的结尾-Qt Application

转载 作者:行者123 更新时间:2023-12-01 14:41:41 26 4
gpt4 key购买 nike

看来目前我对多态性有疑问。我有一个称为Asset的基类,然后是从该类继承的3个类-债券,储蓄和股票。 Asset类内部有一个称为value()的函数,该函数不在该类中实现,而是在每个派生类中实现。我遇到了一些错误,并被告知我应该使函数virtual停止运行,告诉编译器我从未实现该函数。但是现在我收到了错误Warning: control reaches end of non-void function,我的代码无法运行。我只是在代码的开头添加了cout << "Testing";,仍然没有。这是我的Asset类,然后是已实现的功能之一。
Asset.h

#ifndef ASSET_H
#define ASSET_H

#include <QString>
#include <QDate>

class Asset
{
public:
Asset(QString, QDate);
virtual double value() {};
QString getDescription();
QString getType();
protected:
QString type;
QDate date;
private:
QString description;
};

#endif
Stock.cpp value function
double Stock::value()
{
return sharePrice*numShares;
}

我知道很难拼凑我的代码片段。发布所有文件似乎并不恰当,有一些文件。但是,如果您想查看它,我已经将整个项目链接到了Google云端硬盘。 https://drive.google.com/file/d/0B4hZjZFvvaTiWWlhXzF0YWQtcmc/edit?usp=sharing

最佳答案

您的函数有一个意外的实现(定义)。在您的类(class)声明更改中

class Asset {
// ...
virtual double value() {};
// ^^ <<<<<<<<<<< You don't want this
// ...
};


class Asset {
// ...
virtual double value() = 0;
// ...
};

Stock类中重写该函数
class Stock : public Asset {
// ...
virtual double value();
// ...
};

其余的实现和以前一样很好。

关于c++ - 警告:控制到达非无效函数的结尾-Qt Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763125/

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