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/**
* 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 :(