Assegnazione
l'operatore di assegnazione (=) è, in teoria, un operatore binario.La dichiarazione è identica a qualsiasi altro operatore binario, con le seguenti eccezioni:
Deve essere una funzione membro non static.no operator= può essere dichiarato come funzione non membro.
Non viene ereditato dalle classi derivate.
un'impostazione predefinita operator= la funzione può essere generata dal compilatore per i tipi di classe se non esiste già.(Per ulteriori informazioni sull'impostazione predefinita operator= le funzioni, vedere Assegnazione membro per membro e inizializzazione).
Nell'esempio seguente viene illustrato come dichiarare un operatore di assegnazione:
// assignment.cpp
class Point
{
public:
Point &operator=( Point & ); // Right side is the argument.
int _x, _y;
};
// Define assignment operator.
Point &Point::operator=( Point &ptRHS )
{
_x = ptRHS._x;
_y = ptRHS._y;
return *this; // Assignment operator returns left side.
}
int main()
{
}
Si noti che l'argomento fornito il lato destro dell'espressione.L'operatore restituisce l'oggetto per mantenere il comportamento dell'operatore di assegnazione, che restituisce il valore della parte sinistra dopo l'assegnazione è completa.In questo modo le istruzioni di scrittura come:
pt1 = pt2 = pt3;