c++ - 没有匹配的函数调用 C++

标签 c++

尝试初始化 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/

相关文章:

c++ - 具有类作用域的动态分配堆栈内存

c++ - 为什么将实际数组(而非数组变量)作为参数传递给函数会引发错误?

c++ - 类构造函数反汇编

c++ - 如何使用boost multiprecision计算大int和double数

java - 使用简单的C程序编译并运行Java程序

c++ - 当我们不给 C 可执行程序任何参数时如何处理异常

c++ - 第三方类添加静态成员变量

c++ - 将模板与作用域在函数内的匿名类一起使用

c++ - 为什么这段代码有时会产生不同的输出?

c++ - 错误:成员- “Graph::V”不是类型名称