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:
En cambio, si lo hago asi:
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..
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 (cpp) [Seleccionar]
//Persona.h
namespace Agenda{
class Persona{
int edad;
friend int f_obtenerEdad();
};
}
Código (cpp) [Seleccionar]
//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 (cpp) [Seleccionar]
//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..