BUSCAR
INICIO
MAPA
FAQs
UTILIDADES
GLOSARIO
REGISTRO
COLABORAR
QUIENES SOMOS

USUARIO

PASSWORD

FAQs
8. Entrada / Salida de C++

4. Dado que se pueden sobrecargar los operadores, ¿también se puede sobrecargar cout, cin y cerr?

Hemos visto que los operadores cout, ciny cerr pueden ser utilizados con los tipos de variables existentes dentro del lenguaje en sí, tales como enteros, reales, caracteres ... Además,. como tu bien sabes los operadores se pueden sobrecargar, por lo tanto, si que se puede.

A continuación te mostramos un ejemplo:

Lo que queremos conseguir es, dada una clase como por ejemplo la siguiente, que permite trabajar con números complejos,

class Complejo{
   public:
         double real;
         double imaginario;
          Complejo(double, double);
};

Para poder imprimir un objeto de esta clase de la siguiente forma:
Complejo z(1,1);
cout << z;

Es decir, de la misma forma que si fueran los tipos definidos en el lenguaje. Para ello debemos sobrecargar el operador de inserción en este caso (para el operador de extracción el procedimiento es equivalente):
ostream &operator<< (ostream &stream, Complejo &comp){
  stream  << comp.real <<"+i*" << comp.imaginario <<endl ;
  return stream;
}

La función debe devolver una referencia a un objeto del tipo ostream, definido en iostream.h