Tema: operator<<
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/12/2013, 13:13
Pernoctador
 
Fecha de Ingreso: noviembre-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: operator<<

Cita:
Iniciado por dehm Ver Mensaje
Creo que el error se refiere a que en el fichero *.hpp no se define el tipo ostream, porque no has incluido allí iostream

[...]

Si incluyes la librería iostream en el fichero *.h deberías no tener ese problema. De paso la puedes quitar del fichero *.cpp.

[...]
Veamos veamos... lo que decis suena a ser la solucion.. lastima que no es tan asi xD

Código:
In file included from Racional.cpp:3:0:
Racional.hpp: In function ‘std::ostream& operator<<(std::ostream&, const Racional&)’:
Racional.hpp:69:10: error: ‘long int Racional::Num’ is private
     long Num;
          ^
Racional.cpp:395:17: error: within this context
  stream << elem.Num << "/" << elem.Den;
                 ^
In file included from Racional.cpp:3:0:
Racional.hpp:70:10: error: ‘long int Racional::Den’ is private
     long Den;
          ^
Racional.cpp:395:36: error: within this context
  stream << elem.Num << "/" << elem.Den;
                                    ^
Para mi tiene sentido lo que me dijiste, pero ahora me sale este error :(
Intenté pasar Num y Den con funciones pero tampoco anda

Código C++:
Ver original
  1. long num(){return Num;}
  2. long den(){return Den;}

y

Código C++:
Ver original
  1. const long num(){return Num;}
  2. const long den(){return Den;}

En esos casos lo que me dice es que se viola el const Racional que paso como parámetro a la función -.-