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?我很困惑。