Hola!
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:
//Persona.h
namespace Agenda{
class Persona{
int edad;
friend int f_obtenerEdad();
};
}
//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:
//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..