我没有在任何生产环境中使用此代码,这只是为了我的理解。这段代码是否有效(即我可以这样定义我的后缀运算符吗?):
class A
{
public:
A& operator++(int n)
{
std::cout<<"N is:"<<n<<"\n";
return *this;
}
};
int main()
{
A a;
a++;
a.operator ++(10);
}
在 VS2008 上,我得到的输出为:
N is 0
第一次通话和
N is 10
第二次通话
最佳答案
这种行为是合法的,并且在 13.5.7 中有明确定义:
Calling operator++ explicitly, as in expressions like a.operator++(2), has no special properties: The argument to operator++ is 2.
关于c++ - 是否允许在后缀运算符++中命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094732/