Sobrecargar el operador de << para Your Own ordena

Las secuencias de salida usan el operador de inserción (<<) para los tipos estándar.También puede sobrecargar el operador de << dispone de clases.

Ejemplo

El ejemplo de función de write ilustra el uso de una estructura de Date .Una fecha es un candidato ideal a la clase en cuestión. en la que oculta para los miembros de datos (mes, día, y año) de la vista.Una secuencia de salida es el destino lógico para mostrar esa estructura.Este código muestra una fecha con el objeto de cout :

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

Para obtener cout acepte un objeto de Date después del operador de inserción, sobrecargue el operador de inserción para reconocer un objeto de ostream a la izquierda y Date a la derecha.La función sobrecargada de operador de << deberá declararse como una función friend de la clase Date para que se puede tener acceso a los datos privados de un objeto de Date .

// 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;
}
  

Comentarios

El operador sobrecargado devuelve una referencia al objeto original de ostream , que significa que puede combinar inserciones:

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

Vea también

Referencia

Secuencias de salida