可能重复:
如何在 C++ 中重载一元减号运算符?
我有一个 C 类,它重载了许多运算符:
class C
{
...
C& operator-=(const C& other) {...}
const C operator-(const C& other) {...}
}
inline const C operator*(const double& lhs, const C& rhs)
现在我想反转 C 类型的对象
c = -c;
gcc 给了我以下错误:
no match for >>operator-<< in >>-d<<
candidate is: const C C::operator-(const C&)
使用 c = -1*c 有效,但我希望能够缩短它。我的课缺少什么?
已解决:添加一元运算符-:
C operator-() const {...}
作为C的一员。