测试代码:
#include<iostream>
using namespace std;
class myclass{
int m,n;
public:
myclass(int x,int y){m=x,n=y;}
myclass(){}
void show(){cout<<"m is "<<m<<'/t'<<"n is "<<n<<endl;}
// myclass operator++();
friend myclass operator++(myclass &op);
};
/*
myclass myclass::operator++()
{
m++;
n++;
return *this;
}
*/
myclass operator++(myclass &op)
{
op.m++;
op.n++;
return op;
}
int main()
{
myclass cl(0,0);
cl.show();
++cl;
cl.show();
return 0;
}
两种方法中只能选择一种,否则编译器不知道选用哪种。
测试结果:
m is 0 n is 0
m is 1 n is 1
Press any key to continue