Compartilhar via


Sobrecarga de << Operador para suas próprias Classes

Os fluxos de saída usam a inserção (<<) operador para tipos padrão.Você também pode sobrecarregar o << operador para suas próprias classes.

Exemplo

O write exemplo de função mostrou o uso de um Date estrutura.Uma data é um candidato ideal para uma classe C++ na qual os membros de dados (mês, dia e ano) ficam ocultas.Um fluxo de saída é o destino lógico para a exibição dessa estrutura.Esse código exibe uma data usando o cout objeto:

Date dt( 1, 2, 92 );
cout << dt;

Para obter cout para aceitar uma Date depois do operador de inserção de objeto, sobrecarregar o operador de inserção para reconhecer um ostream o objeto à esquerda e um Date à direita.O sobrecarregado << a função de operador, em seguida, deve ser declarada como um amigo da classe Date para que ele possa acessar os dados privados dentro de um Date objeto.

// overload_date.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

class Date
{
    int mo, da, yr;
public:
    Date(int m, int d, int y)
    {
        mo = m; da = d; yr = y;
    }
    friend ostream& operator<<(ostream& os, const Date& dt);
};

ostream& operator<<(ostream& os, const Date& dt)
{
    os << dt.mo << '/' << dt.da << '/' << dt.yr;
    return os;
}

int main()
{
    Date dt(5, 6, 92);
    cout << dt;
}
  

Comentários

O operador sobrecarregado retorna uma referência ao original ostream objeto, o que significa que você pode combinar as inserções:

cout << "The date is" << dt << flush;

Consulte também

Referência

Fluxos de saída