Me parece extraño que tenga que definir una función friend anteponiendo el espacio de nombre si se supone que lo dejé estipulado al principio:
Código
//Persona.h namespace Agenda{ class Persona{ int edad; friend int f_obtenerEdad(); }; }
Código
//Persona.cpp #include "Persona.h" using namespace Agenda; int f_obtenerEdad(Persona & _p){ return _p.edad; //Error, edad es privado }
En cambio, si lo hago asi:
Código
//Persona.cpp #include "Persona.h" using namespace Agenda; int Agenda::f_obtenerEdad(Persona & _p){ return _p.edad; //Esto lo asimila correctamente }
Tenía entendido que si yo escribía "using namespace X", no era necesario llamar a los miembros de un objeto usando X:: , pero en este caso del friend no se cumple, por qué será?
Gracias..