C ++类赋值运算符

时间:2014-10-15 23:42:46

标签: c++

我试图了解如何实现类对象。我想知道以下两个类赋值运算符之间的主要区别。

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;

0 个答案:

没有答案