2012-11-02 48 views
0

可能重複:
Operator Overloading in C++ as int + obj如何超載加法運算符來進行交換計算?

我有一個類A與超載operator+。我的問題是我希望能夠通過以下兩種方式來使用求和。

A a; 

a + 5; 

5 + a; 

如何超載+能夠做到這一點?我知道我們可以重載++以執行後期和前期增量(++xx++),那麼如何模擬上述能力呢?

+0

你應該看看一個操作符重載後者的文章或引用。你可以找到幾乎所有[這裏](http://stackoverflow.com/questions/4421706/operator-overloading)。 – chris

回答

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,以防止有多次定義符號的情況下,你在一個頭定義操作。