我使用了以下代码来实现赋值运算符重载:
SimpleCircle SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
我的复制构造函数是:
SimpleCircle::SimpleCircle(const SimpleCircle & rhs)
{
itsRadius = rhs.getRadius();
}
在上面的操作符重载代码中,由于创建了一个新对象,因此调用了复制构造函数;因此,我使用了以下代码:
SimpleCircle & SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
它工作得很好,并且避免了复制构造函数的问题,但是(对我来说)这方面有什么未知的问题吗?
https://stackoverflow.com/questions/10076285
复制相似问题