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;