(++p1).print()与p1++.print()的区别?
class point
{
public:
point( int a, int b ) { x = a; y = b; }
void print() { cout << x << " " << y << endl; }
friend point operator++( point &p1 );
friend point operator++( point &p1, int );
private:
int x, y;
};
point operator++( point &p1 )
{
++p1.x;
++p1.y;
return p1;
}
point operator++( point &p1, int )
{
p1.x++;
p1.y++;
return p1;
}
int main( int argc, char **argv )
{
point p1(10, 20);
p1.print(); //1
(++p1).print(); //2
p1++.print(); //3
return 0;
}
程序执行结果为:
10 20
11 21
12 22
我的问题是在p1++.print()这句程序中,应该是先打印的,结果为
10 20
11 21
11 21
大家看看怎么回事,谢谢~