2012-05-04 56 views
0

可能重複:
Operator overloading超載後綴增量運算

假設我有一個類Foo,我想超載後綴增量操作。我做類似的事情:

class Foo{ 
..... 
public: 
    friend Foo& operator++(Foo&, int); 

然後我在某個地方定義了新的操作符。我真的搞不清楚這個int從哪裏來。

如果我有:f = Foo();我可以這樣做:

f++; 

,這對我來說似乎是一元。

句法規則如何?

在測試中,我運行的int值是0。 ti總是零嗎?

+0

它基本上是一種區分後綴和前綴的方法。 – juanchopanza

+1

傳統上,postfix通過值返回,而不是通過引用。 –

回答

1

int參數只是一個約定,提示編譯器區分前綴和後綴運算符。

+0

不僅僅是一個提示,並且[MSDN](http://msdn.microsoft.com/en-us/library/f6s9k9ta(v = vs.100).aspx)指示使用除int以外的任何內容都是錯誤。 – crashmstr