重複の可能性:
コピー代入演算子が参照/定数参照を返さなければならないのはなぜですか?
Operator= C++ でのオーバーロード
この代入演算子のオーバーロードについては、すでに質問しました。私はばかげた質問をしているかもしれません。すみません。
私のクラス宣言は次のようなものです:
class Circle
{
public:
Circle();
Circle(const Circle &);
Circle(unsigned short rad);
unsigned short getRadius() const { return itsradius; }
void setRadius(unsigned short rad) { itsRadius = rad; }
private:
unsigned short itsRadius:
};
私のクラス定義:
Circle::Circle()
{
itsRadius = 0;
}
Circle::Circle(unsigned short rad)
{
itsRadius = rad;
}
Circle::Circle(const Circle & rhs)
{
itsRadius = rhs.getRadius();
}
次のように代入演算子をオーバーロードしています。
SimpleCircle & SimpleCircle::operator=(const SimpleCircle & rhs)
{
itsRadius = rhs.getRadius();
return *this;
}
「itsRadius = rhs.getRadius()」のように現在のオブジェクトで作業している場合、現在のオブジェクトの半径が変更されます。その場合、「*this」を返す必要はありません。この関数を void として書き直すことはできますか? 問題はありますか?それとも従うべき基準ですか?