2012-05-04 55 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