【问题标题】:How do I overload the addition operator to preform commutative calculation? [duplicate]如何重载加法运算符以进行交换计算? [复制]
【发布时间】:2012-10-23 05:32:12
【问题描述】:

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

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

A a;

a + 5;

5 + a;

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

【问题讨论】:

  • 您应该查看运算符重载文章或后者的参考。你可以找到几乎所有here

标签: c++


【解决方案1】:

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

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 用于防止在标题中定义运算符时多次定义符号。

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多