加算の正しい出力を与える以下のコードは、それを行った後に最初のオブジェクト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のみが変更されます。
ありがとう :)