Sobrecarga operadores cin y cout Juan Berjillo Castellanos (2004-02-29)

Sobrecarga de los operadores cin y cout para una clase.

/* Juan Berjillos Castellanos
   Sobrecarga_operadores_>>_y_<<.cpp
   Fecha/Hora inicio:
   Descripción: Sobrecarga operadores >> y <<.
*/

#include <iostream>
using namespace std;

namespace constantes
    {
    static const char
Mes[][11]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
   "Septiembre","Octubre","Noviembre","Diciembre"};
    }

class Fecha
    {
    private:
    int dia,mes,anno;
    public:
//    Fecha(int d,int m,int a) {dia=d;mes=m;anno=a;}
    void AsignarFecha(int d,int m,int a) {dia=d;mes=m;anno=a;}
    void ObtenerFecha(int &d,int &m,int &a) const {d=dia;m=mes;a=anno;}
    };

ostream& operator<<(ostream& os,const Fecha& fecha);
istream& operator>>(istream& is,Fecha& fecha);

int main()
    {
    Fecha fecha;
    cout << "Introduce fecha (dd/mm/aaaa): ";
    cin >> fecha;
    cout << endl << fecha;
    cin.get();
    cin.get();
    return 0;
    }

ostream& operator<<(ostream& os,const Fecha& fecha)
    {
    int d,m,a;
    fecha.ObtenerFecha(d,m,a);
    os << d << " de " << constantes::Mes[m-1] << " de " << a;
    return os;
    }

istream& operator>>(istream& is,Fecha& fecha)
    {
    int d,m,a;
    char Caracter;
    is >> d >> Caracter >> m >> Caracter >> a;
    fecha.AsignarFecha(d,m,a);
    return is;
    }

Regresar a ejemplos