该错误通常是由于重载运算符'!=”时,未定义相应的运算符来判断两个不同类型的参数是否相等引起的。解决方法是在重载运算符'!=”时,对类型进行强制转换,以确保参数类型相同。例如:
class A {
public:
// ...
bool operator!=(const A& a) const {
// ...
}
};
class B {
public:
// ...
};
B b;
A a;
// 错误写法,类型不匹配
if (a != b) {
// ...
}
// 正确写法,使用类型转换
if (a != static_cast(b)) {
// ...
}
上一篇:编译器发出的模糊下标
下一篇:编译器告诉我参数包没有展开。