Partilhar via


Atribuição

O operador de atribuição (=) é, estritamente falando, um operador binário. Sua declaração é idêntica a qualquer outro operador binário, com as seguintes exceções:

  • Ele deve ser uma função de membro não estático. Nenhum operator= pode ser declarado como uma função diferente de membro.

  • Ele não é herdado por classes derivadas.

  • Uma função padrão operator= pode ser gerada pelo compilador para tipos de classe, se nenhum existir. (Para obter mais informações sobre as funções padrão operator=, consulte Atribuição e inicialização relacionadas a membros.)

O exemplo a seguir ilustra como declarar um operador de atribuição:

// 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()
{
}

Observe que o argumento fornecido é o lado direito da expressão. O operador retorna o objeto para preservar o comportamento do operador de atribuição, que retorna o valor do lado esquerdo após a conclusão da atribuição. Isso permite a gravação de instruções como:

pt1 = pt2 = pt3;

Consulte também

Referência

Sobrecarga de operador