尝试初始化 Board 类型的对象时,我在 C++ 中遇到上述错误。 board 的构造函数接受两个整数,所以它是
Board::Board(int w, int h)
我正在尝试创建一个 Connect Four 游戏。 ConnectFour.h 文件具有以下内容:
Board b;
在其私有(private)变量中,ConnectFour.cpp 中的构造函数是这样的:
ConnectFour::ConnectFour()
{
Board b(7, 6);
显然,除此之外。
它给我错误:
在构造函数‘ConnectFour::ConnectFour(int, int)’中:|
错误:没有匹配函数来调用‘Board::Board()’|
注意:候选人是:|
注意:棋盘::棋盘(int, int)|
注意:候选人需要 2 个参数,提供 0 个参数|
如果有人能伸出援手,我将不胜感激。
编辑:事实证明我有点傻。谢谢大家。
最佳答案
您需要为 board 提供一个不带参数的构造函数以与您的 Board b;
代码一起使用,或者您需要在创建对象时将宽度、高度传递给 Board b(width, height);
或者你可以把board的初始化放在ConnectFour的初始化列表中
ConnectFour::ConnectFour() :
b(7,6)
{
}
以便在创建 ConnectFour 时它具有所需的信息。
最后,您可以在父类中保留一个指向 Board 对象的指针,并在父类的构造函数中动态创建它。这需要更加小心,并且可能需要使用智能指针来正确处理对象的创建和销毁。
关于c++ - 没有匹配的函数调用 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16180822/