我试图了解如何实现类对象。我想知道以下两个类赋值运算符之间的主要区别。
Point Point::operator=(const Point & p)
{
if(this == &p)
return *this;
m_x = p.m_x;
m_y = p.m_y;
return *this;
}
这一个
Point & Point::operator=(const Point & p)
{
if(this == &p)
return *this;
m_x = p.m_x;
m_y = p.m_y;
return *this;
}
我可以看到,后者返回对象的引用,但我没有看到任何实际的区别。例如,当我尝试做这样的事情时,它们都工作正常:
Point point2, point3;
point3 = point2 = point1;