class sample
{
private:
int radius;
float x,y;
public:
circle()
{
}
circle(int rr;float xx;float yy)
{
radius=rr;
x=xx;
y=yy;
}
circle operator =(circle& c)
{
cout << endl<<"Assignment operator invoked";
radius=c.radius;
x=c.x;
y=c.y;
return circle(radius,x,y);
}
}
int main()
{
circle c1(10,2.5,2.5);
circle c1,c4;
c4=c2=c1;
}
オーバーロードされた「=」関数では、ステートメント
radius=c.radius;
x=c.x;
y=c.y;
それ自体が c2 のすべてのデータ メンバを c1 のデータ メンバと等しくするのに、なぜ return が必要なのでしょうか? 同様に、c1=c2+c3 では、オーバーロードされた + 演算子を使用して c2 と c3 が加算され、値が c1 に返されますが、それは c1= にはなりません。したがって、別の = 演算子を使用して合計を代入するべきではありません。 c2 と c3 の c1 への? よくわかりません。