E:\bird\bird\bird\bird.cpp:45: error: no match for 'operator==' (operand types are 'QPixmap' and 'QPixmap') } else if (m_currentImage == QPixmap(":/rec/bird1.png")) { ^
时间: 2024-04-15 08:30:25 浏览: 213
抱歉,再次犯了同样的错误。在C++中,`QPixmap`类没有重载`==`运算符,因此不能直接使用`==`来比较两个`QPixmap`对象。你可以使用`QPixmap::operator==()`来比较两个`QPixmap`对象是否相同。请修改你的代码如下:
```cpp
void Bird::animate() {
// 切换小鸟的图像
if (m_currentImage.operator==(QPixmap(":/rec/bird1.png"))) {
m_currentImage = QPixmap(":/rec/bird2.png");
} else if (m_currentImage.operator==(QPixmap(":/rec/bird2.png"))) {
m_currentImage = QPixmap(":/rec/bird3.png");
} else {
m_currentImage = QPixmap(":/rec/bird1.png");
}
// 更新小鸟的显示
m_Plane.setPixmap(m_currentImage);
}
```
这样,你的代码将会切换小鸟的图像并更新显示。如果你还有其他问题,请随时提问。
相关问题
E:\bird\bird\bird\bird.cpp:43: error: no match for 'operator==' (operand types are 'QPixmap' and 'QPixmap') if (m_currentImage == QPixmap(":/rec/bird1.png")) { ^
抱歉,我的错误。在C++中,`QPixmap`类没有重载`==`运算符,因此直接使用`==`来比较两个`QPixmap`对象。相反,你可以使用`QPixmap::isNull()`函数来检查`QPixmap`对象是否为空,或者使用`QPixmap::operator!=()`运算符来比较两个`QPixmap`对象是否不同。请修改你的代码如下:
```cpp
void Bird::animate() {
// 切换小鸟的图像
if (m_currentImage.isNull()) {
m_currentImage = QPixmap(":/rec/bird1.png");
} else if (m_currentImage == QPixmap(":/rec/bird1.png")) {
m_currentImage = QPixmap(":/rec/bird2.png");
} else if (m_currentImage == QPixmap(":/rec/bird2.png")) {
m_currentImage = QPixmap(":/rec/bird3.png");
} else {
m_currentImage = QPixmap(":/rec/bird1.png");
}
// 更新小鸟的显示
m_Plane.setPixmap(m_currentImage);
}
```
这样,你的代码将会切换小鸟的图像并更新显示。如果你还有其他问题,请随时提问。
error: no match for ?operator==? (operand types are ?? and ?const ) 1015 |
这个错误信息通常出现在C++编程中,当你尝试对两个不同类型的对象使用"=="运算符进行比较时。`error: no match for operator==`表示编译器找不到匹配的相等操作符(`==`)处理这种类型的组合。`??`和`?const`可能是你的函数指针、函数引用或其他非基本数据类型的变量。
具体来说,`??`看起来像是未完全显式类型化的标识符或者是某种特殊的类型别名,而`?const`表明第二个操作数可能是常量。你应该检查这两个操作数是否应该可以相互比较,比如一个是常量引用,另一个是可以改变状态的对象;或者你需要提供一个自定义的操作符重载,以便正确地处理这两种类型之间的比较。
解决这个问题的方法包括:
1. 确保你可以直接比较这两种类型,如果没有默认的等于运算符,可能需要创建一个。
2. 如果是函数指针或回调,确保传递给它们的函数接受正确的参数并返回合适的类型。
3. 检查是否有类型转换或者临时对象的构造能使得比较成为可能。
阅读全文