所以我真的很困惑为什么我会收到这个无效的操作数错误。我有两个班级,classA 和 ClassB。ClassB 包含三个 ClassA 指针。ClassA operator+= 已被重载如下:
ClassA& ClassA::operator+=(const ClassA& rhs)
{
(*this).dataMem += rhs.dataMem;
return *this;
}
这很有效。当我在 ClassB 中重载 operator+= 和 operator+ 时,我的问题就出现了。操作员应该只对其中的 ClassA 对象执行 + 操作。
ClassB& ClassB::operator+=(const ClassB& rhs)
{
(*this).mClassA + rhs.mClassA;
return *this;
}
我很困惑,因为我使用完全相同的格式和调用重载了 ClassB 中的其他运算符,但是在重载 + 和 += 运算符时我只收到无效的操作数错误。
这是我收到的错误:ClassB.cpp:93: 错误:ClassA* 和 ClassA* const 类型的无效操作数到二元运算符+。
任何形式的帮助或建议将不胜感激。谢谢!