error: no declaration matches 'void Field::setTerrain(int, int, Terrain)'|
时间: 2024-02-23 19:57:17 浏览: 152
这个错误提示表明在你的代码中,你试图调用一个名为 `setTerrain` 的函数,但是编译器无法找到与你提供的参数匹配的函数声明。
这可能是由于以下原因之一导致的:
- `setTerrain` 函数没有被正确地声明或定义。
- `setTerrain` 函数被声明为常量函数,但你在调用它时提供了非常量参数。
- `setTerrain` 函数所在的类 `Field` 没有被正确地声明或定义。
要解决这个问题,你可以检查以下几个方面:
- 确认 `setTerrain` 函数已经被正确地声明或定义。
- 如果 `setTerrain` 函数被声明为常量函数,确认你在调用它时提供了常量参数。
- 确认 `Field` 类已经被正确地声明或定义,并且 `setTerrain` 函数是该类的成员函数。
相关问题
error: no declaration matches 'void Field::setTerrain(int, int, Terrain) const'|
这个错误提示表明在你的代码中,你在一个被声明为常量的函数 `setTerrain` 中,试图修改 `Field` 类中的某些成员变量,从而导致错误。常量成员函数是指不修改类中成员变量的函数,因此尝试在其中修改成员变量是不允许的。
要解决这个问题,你需要检查你的代码,确保在声明为常量的函数中不对成员变量进行修改。如果你需要在常量函数中修改成员变量,可以将成员变量声明为 `mutable`,这样它们可以在常量函数中被修改。
F:\00-Work\2023_05_26_qml_learn\learn3\ShowMatItem.cpp:14: error: no declaration matches 'void ShowMatItem::camera_open()' F:/00-Work/2023_05_26_qml_learn/learn3/ShowMatItem.cpp:14:6: error: no declaration matches 'void ShowMatItem::camera_open()' 14 | void ShowMatItem::camera_open(){ | ^~~~~~~~~~~ F:/00-Work/2023_05_26_qml_learn/learn3/ShowMatItem.cpp:14:6: note: no functions named 'void ShowMatItem::camera_open()'
这个错误提示是由于编译器找不到名为 `camera_open` 的函数的声明,可能是因为你在 `ShowMatItem.cpp` 文件中定义了这个函数,但是在 `ShowMatItem.h` 文件中没有声明。你需要在 `ShowMatItem.h` 文件中添加如下声明:
```cpp
public:
void camera_open();
```
这样编译器就能找到该函数的声明,从而解决该错误。
阅读全文