如何重载加法运算符以执行可交换计算?

时间:2012-11-02 14:29:14

标签: c++

  

可能重复:
  Operator Overloading in C++ as int + obj

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

A a;

a + 5;

5 + a;

如何重载+才能执行此操作?我知道我们可以重载++来执行post和pre增量(++xx++),那么我如何模拟上述功能呢?

1 个答案:

答案 0 :(得分: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用于防止在标题中定义运算符时多次定义符号。