He utilizado el siguiente código para la sobrecarga de operadores de asignación:operador de asignación sobrecarga en C++
SimpleCircle SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
Mi constructor de copia es la siguiente:
SimpleCircle::SimpleCircle(const SimpleCircle & rhs)
{
itsRadius = rhs.getRadius();
}
En el código de operador por encima de la sobrecarga, constructor de copia se llama ya que hay un nuevo objeto que se está creando; por lo tanto, he utilizado el código de abajo:
SimpleCircle & SimpleCircle::operator=(const SimpleCircle & rhs)
{
if(this == &rhs)
return *this;
itsRadius = rhs.getRadius();
return *this;
}
Su funcionando perfectamente y el problema se evita constructor de copia, pero ¿hay algún problema desconocido (para mí) con respecto a esto?
Tome un vistazo a la [copia, intercambio de idioma] (http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap -idiom) – Praetorian
@Praetorian La copia y el cambio de idioma son buenos si sabe que un artículo puede arrojarse durante el operador de asignación o si está trabajando con un software que no ha desarrollado y no sabe si ocurrirá un lanzamiento. Si está trabajando con sus propios artículos y sabe que no habrá tiros usando la copia y el intercambio de expresiones idiomáticas, no es necesario. –