c++ - 在 C++ 中发生没有匹配函数调用错误

标签 c++

我是c++的新手,我知道有很多类似的问题,但不幸的是没有帮助我解决这个问题(我认为这是一个概念上的误解)

所以我有这个构造函数

Field::Field(const Position &posG, const Position &posC) {
    //...
}

我正在创建一个 Field 如下

// Create positions
Position posG, posC;
posG.x = 3;
posG.y = 3;
posC.x = 4;
posC.y = 4;

// Create pointers to positions
const Position *pPosC(&posC);
const Position *pPosG(&posG);

// Create field
Field field (pPosG, pPosC);

位置在哪里

struct Position {
    int x;
    int y;
};

然后我得到这个异常:

main.cpp:27:30: error: no matching function for call to ‘Field::Field(const Position*&, const Position*&)’
     Field Field (pPosG, pPosC);

In file included from main.cpp:2:0:

有什么帮助吗?问候

最佳答案

Field(const Position &posG, const Position &posC);
                     ^^^^^                 ^^^^^^

那些是引用。所以当你试图传递指针时

Field field (pPosG, pPosC);
             ^^^^^   ^^^^
             pointer   pointer

无法编译。

要么让构造函数接受引用指针(const Position *&posG),要么传递指针的值(*pPosG),要么直接传递值(posG).

关于c++ - 在 C++ 中发生没有匹配函数调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352003/

相关文章:

c++ - 为控制台计算器将 float 插入堆栈时出现问题

c++ - 尝试实现 std::tie 和 std::tuple 的小版本

c++ - 指向运行时固定大小数组的指针是否合法?

c++ - _fread_nolock、_fseek_nolock 的预期用途是什么?

C++ 使用整数类型的模板,候选模板被忽略

c++ - 添加公共(public)变量时崩溃

c++ - Homebrew 公式一步一步安装调试

c++ - 字符串文字中的反斜杠字符

c++ - 为什么引用的常量性会影响它是否可以用不同类型的变量初始化?

c++ - 初始化不工作