[Índice][Previo][Siguiente]

Sobrecarga de los operadores 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 ... Veamos ahora cómo podemos sobrecargar estos operadores para ser utilizados con los tipos que nosotros definimos. 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);
          .
	  .
	  .
	  
};

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

[Índice][Previo][Siguiente]

Free Web Hosting