Tema: operator<<
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2013, 07:09
Pernoctador
 
Fecha de Ingreso: noviembre-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta operator<<

Buenas.
Vuelvo al ruedo con esto de C++, y me encuentro con que no se hacer correctamente el operator<<. Fui a algunos foros y copie y pegue explicaciones, pero no anda. Que no estoy viendo?

Código:
Racional.hpp:14:9: error: ‘ostream’ in namespace ‘std’ does not name a type
  friend std::ostream& operator<< (std::ostream& stream, const Racional& elem);
         ^
.h
Código C++:
Ver original
  1. /**
  2.   * Racional.hpp
  3. */
  4. #ifndef __RACIONAL__
  5. #define __RACIONAL__
  6.  
  7. using namespace std;
  8.  
  9. class Racional
  10. {
  11. public:
  12.     Racional();
  13.     Racional(long numerador, long denominador);
  14.     Racional(const Racional& copia);
  15.    
  16.     friend std::ostream& operator<< (std::ostream& stream, const Racional& elem);
  17.  
  18. [...]
  19.  
  20. private:
  21.    
  22.     long Num;
  23.     long Den;
  24.    
  25.     long mcd(long a, long b);
  26. };
  27.  
  28. #endif

.cpp

Código C++:
Ver original
  1. /**
  2.    * Racional.cpp
  3. */
  4.  
  5. #include <iostream>
  6. #include <cmath>
  7. #include "Racional.hpp"
  8.  
  9. using namespace std;
  10.  
  11. [...]
  12.  
  13. std::ostream& operator<< (std::ostream& stream, const Racional& elem)
  14. {
  15.     stream << elem.Num << "/" << elem.Den; //necesito friend para usar Num y Den q son privados
  16.     return stream;
  17. }

Lo mas triste es que he c&p de gente q dice que esta es la posta. No se :(