0

可能重复:
C++ 中的运算符重载为 int + obj

我有A一个重载的类operator+。我的问题是我希望能够通过以下两种方式使用求和。

A a;

a + 5;

5 + a;

我如何超载+才能做到这一点?我知道我们可以重载++执行后增量和前增量(++xx++),那么我怎样才能模拟上述能力呢?

4

1 回答 1

4

您将操作员定义为非成员:

class A
{
   int operator + (int x) const
   { 
       return 42;
   }
};

inline int operator + (int x, const A& a)
{
   return a+x;  //calls a.operator +(x)
}

如果inline您在标题中定义运算符,则可以防止多次定义符号。

于 2012-11-02T14:30:23.493 回答