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:
.hRacional.hpp:14:9: error: ‘ostream’ in namespace ‘std’ does not name a type friend std::ostream& operator<< (std::ostream& stream, const Racional& elem); ^
Código C++:
Ver original
/** * Racional.hpp */ #ifndef __RACIONAL__ #define __RACIONAL__ using namespace std; class Racional { public: Racional(); Racional(long numerador, long denominador); Racional(const Racional& copia); friend std::ostream& operator<< (std::ostream& stream, const Racional& elem); [...] private: long Num; long Den; long mcd(long a, long b); }; #endif
.cpp
Código C++:
Ver original
/** * Racional.cpp */ #include <iostream> #include <cmath> #include "Racional.hpp" using namespace std; [...] std::ostream& operator<< (std::ostream& stream, const Racional& elem) { stream << elem.Num << "/" << elem.Den; //necesito friend para usar Num y Den q son privados return stream; }
Lo mas triste es que he c&p de gente q dice que esta es la posta. No se :(