Por que o operador de atribuição de cópia deve retornar uma referência / referência const?
Em C ++, o conceito de retornar referência do operador de atribuição de cópia não é claro para mim. Por que o operador de atribuição de cópia não pode retornar uma cópia do novo objeto? Além disso, se eu tiver aulaA
e o seguinte:
A a1(param);
A a2 = a1;
A a3;
a3 = a2; //<--- this is the problematic line
ooperator=
é definido da seguinte maneira:
A A::operator=(const A& a)
{
if (this == &a)
{
return *this;
}
param = a.param;
return *this;
}