Condividi tramite


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;

Vedere anche

Riferimenti

Overload degli operatori