- 336 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 18:30:19 ]
- 単項演算子-のオーバーロードについて質問があります。
独習C++という本で勉強しているのですが、以下のようなサンプルコードがあります。(※一部省略) class coord{ int x,y; public: coord(){x=0;y=0;} coord operator-(coord ob2);//2項負符号 coord operator-();//単項負符号 }; //単項-をcoordクラスに対してオーバーロードする coord coord::operator-(){ x=-x; y=-y; return *this; } 上記の場合、 coord ob1; coord ob2; ob2=-ob1; としただけで、ob1の内容が変わってしまうと思うのですが、 このサンプルコードは正しいのでしょうか? 以下のほうがいいと思うのですが。 //単項-をcoordクラスに対してオーバーロードする coord coord::operator-() { coord temp; temp.x=-x; temp.y=-y; return temp; }
|

|