Перегрузка оператора присваивания в c++

Я использовал следующий код для перегрузки оператора присваивания:

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;
}

Он работает отлично, и проблемы с конструктором копирования удалось избежать, но есть ли какие-либо неизвестные проблемы (для меня) в отношении этого?

32
задан kaushik 9 April 2012 в 16:26
поделиться