主题:关于运算符重载——为什么输出这个结果
#include<iostream.h>
class Vector
{
int x,y;
public:
Vector(int i,int j){x=i;y=j;}
disp(){cout<<"("<<x<<","<<y<<")"<<endl;}
void operator+=(Vector m){x=x+m.x;y=y+m.y;}
void operator-=(Vector n){x=x-n.x;y=y-n.y;}
};
void main()
{
Vector a(1,2),b(4,2);
cout<<"a:";
a.disp();
cout<<"b:";
b.disp();
cout<<"a+=b:";
a+=b;
a.disp();
cout<<"a-=b:";
a-=b;
a.disp();
}
输出结果是:
a:(1,2)
b:(4,2)
a+=b:(5,4)
a-=b:(1,2)
前三个结果我懂,最后一个不是应该为(-3,0)吗?这是为什么啊?
class Vector
{
int x,y;
public:
Vector(int i,int j){x=i;y=j;}
disp(){cout<<"("<<x<<","<<y<<")"<<endl;}
void operator+=(Vector m){x=x+m.x;y=y+m.y;}
void operator-=(Vector n){x=x-n.x;y=y-n.y;}
};
void main()
{
Vector a(1,2),b(4,2);
cout<<"a:";
a.disp();
cout<<"b:";
b.disp();
cout<<"a+=b:";
a+=b;
a.disp();
cout<<"a-=b:";
a-=b;
a.disp();
}
输出结果是:
a:(1,2)
b:(4,2)
a+=b:(5,4)
a-=b:(1,2)
前三个结果我懂,最后一个不是应该为(-3,0)吗?这是为什么啊?