这是我在“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
缺少默认构造函数。在 Solver
的构造函数中,您可能正在执行以下操作:
Solver::Solver(const Board &board_c, int max_moves_c) {
Board b; // <--- can not construct b because constructor is missing
...
}
所以你要么定义默认构造函数,要么用一些参数调用适当的构造函数。
那是因为编译器想要帮助你,所以它列出了实际可用(定义)的可能构造函数。
关于c++ - "No matching function call"在构造函数中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19524100/