c++ - 使用头文件在c ++中调用没有匹配的函数
问题描述
我的程序一直在这部分发送错误消息:
#include "StockListType.h"
int main()
{
int menuPromptOption;
double gainLossList[5];
StockListType stockList [5]; //error part
stockType A,B,C,D,E;
}
这是我用于主要的头文件
class StockListType : public listType<stockType>
{
public:
StockListType (int size);
void sortArrayByGain();
void sortArrayByGain(double arrayList []);
void printByGain();
~StockListType();
}
这是我不断收到的错误消息。
error: no matching function for call StockListType::StockListType()
解决方案
您的以下行main
:
StockListType stockList [5];
指示编译器使用每个对象的该类的默认构造函数创建一个由 5 个StockListType
对象组成的数组。
但是,由于您在类中明确定义了一个非默认构造函数,因此:
public:
StockListType (int size);
那么编译器将不会生成默认构造函数(即不带参数的构造函数)。
要解决此问题,您需要添加显式默认构造函数:
StockListType ();
当然,在代码的其他地方提供实际定义(或 = default
在声明中添加)。该默认构造函数的确切作用取决于您,但是,如果它与另一个(您已经拥有)大致相同,那么您可以通过为size
参数提供默认值来“合并”两者:
StockListType (int size = -1); // Default value for "size" allows use as a default c'tor
随时要求进一步澄清和/或解释。
推荐阅读
- objective-c - 尽管导入了 Firebase.framework,但找不到头文件 (FirebaseCore/FirebaseCore.h)
- video - 将 .osp OpenShot 项目导出到 ffmpeg 脚本,作为通过交换地狱解决视频导出冻结或崩溃的方法
- ios - 如何在 iPhone 中快速从文件路径 url 获取视频或图像?
- android - DaggerAppComponent - 未解决的参考
- spring-boot - Spring Boot 执行器页面返回 http 链接而不是 https
- typescript - 类实例的打字稿约束不是对象
- gensim - 从 gensim LDA 模型中提取主题分布
- mysql - 使用许多连接和过滤器优化 MySQL 查询
- javascript - 我可以在 react native 中使用 webview 作为屏幕背景吗?如果是,如何?
- git - 数据科学项目的分支