[英]“No matching function call” in constructor
这是我在“solver.h”文件中的构造函数声明。
Solver(const Board &board_c, int max_moves_c);
在尝试编译时,我收到以下错误...
solver.cpp: In constructor 'Solver::Solver(const Board&, int)':
solver.cpp:6:55: error: no matching function for call to 'Board::Board()'
Solver::Solver(const Board &board_c, int max_moves_c)
然后列出了作为董事会建设者的候选人。
我不确定我做错了什么,因为我认为没有理由为什么我应该得到这个错误。
我用g ++编译。
错误:没有用于调用'Board :: Board()'的匹配函数
意味着类Board
缺少deafault构造函数。 在Solver
的构造函数中,您可能正在执行以下操作:
Solver::Solver(const Board &board_c, int max_moves_c) {
Board b; // <--- can not construct b because constructor is missing
...
}
所以你要么必须定义默认的构造函数,要么用一些参数调用相应的构造函数。
“然后它列出了作为董事会建设者的候选人。”
那是因为编译器想要帮助你,所以它列出了实际可用(定义)的可能的构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.