Ash*_*sha 26 c++ operator-overloading
我没有在任何生产环境中使用此代码,这只是为了我的理解.这段代码是否有效(即我可以像这样定义我的postfix运算符吗?):
class A
{
public:
A& operator++(int n)
{
std::cout<<"N is:"<<n<<"\n";
return *this;
}
};
int main()
{
A a;
a++;
a.operator ++(10);
}
Run Code Online (Sandbox Code Playgroud)
在VS2008上,我得到输出为:
N是0
第一次通话和
N是10
第二次通话
Bjö*_*lex 20
这种行为是合法的,在13.5.7中定义明确:
显式调用operator ++,就像a.operator ++(2)这样的表达式,没有特殊的属性:operator ++的参数是2.