下面的代码给出了加法的正确输出,它在执行后更改了第一个对象b的x值。
class numbers{
public:
int x;
numbers(int i1){
x = i1;
}
numbers operator+ (numbers num){
x = x + num.x;
return(x);
}
};
int main(){
numbers a (2);
numbers b (3);
numbers c (5);
numbers d (7);
cout << a.x << b.x << c.x << d.x << endl; // returns 2357
numbers final (100); //this value won't be shown
final = a+b+c+d;
cout << a.x << b.x << c.x << d.x << endl; // returns 5357
cout << final.x; //returns 17 (2+3+5+7)
system("pause");
}
问题是,这个加法类究竟是如何工作的?我的意思是,为什么对象中的x被修改了?我虽然只有来自最终对象的x会被修改。
谢谢 :)