Warum muss der Kopierzuweisungsoperator eine Referenz / Konstantenreferenz zurückgeben?
In C ++ ist mir das Konzept der Rückgabe der Referenz vom Kopierzuweisungsoperator unklar. Warum kann der Operator für die Zuweisung von Kopien keine Kopie des neuen Objekts zurückgeben? Außerdem, wenn ich KlasseA
, und die folgende
A a1(param);
A a2 = a1;
A a3;
a3 = a2; //<--- this is the problematic line
Dasoperator=
ist wie folgt definiert:
A A::operator=(const A& a)
{
if (this == &a)
{
return *this;
}
param = a.param;
return *this;
}