Compartilhar via


Atribuição

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

  • Ele deve ser uma função de membro não estático.Não operator= pode ser declarada como uma função não-membro.

  • Ele não será herdado pelas classes derivadas.

  • Um padrão operator= função pode ser gerada pelo compilador para tipos de classe, se não houver nenhum.(Para obter mais informações sobre o padrão operator= funções, consulte Memberwise de atribuição e de inicialização.)

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 escrever instruções, como:

pt1 = pt2 = pt3;

Consulte também

Referência

Sobrecarga de operador