Bueno, a mi con el VC++ me compila, enlaza y funciona perfectamente esto:
fichero.cpp
Código:
#include <iostream>
using namespace std;
#include "fichero.h"
//void uno_::c2::metodo_de_c2() { }
ostream &uno_::operator<<(ostream &os, const uno_::c1 &c)
{
os << "\n some text \n";
return os;
}
void uno_::c2::metodo_de_c2()
{
//declaro un objeto "ce" de tipo c1
uno_::c1 ce;
cout<<ce;
}
void main()
{
uno_::c2 x;
x.metodo_de_c2();
}
fichero.h
Código:
namespace uno_
{
class c1
{
public:
c1() { }
~c1() { }
};
ostream &operator<<(ostream &os, const c1 &c);
class c2
{
public:
c2() { }
~c2() { }
void metodo_de_c2();
};
}
Simplemente con hacer: cl /EHsc fichero.cpp