tengo dos dudas acerca de este código de abajo:funciones friend de una clase dentro de un espacio de nombres
namespace A { class window; }
void f(A::window);
namespace A
{
class window
{
private:
int a;
friend void ::f(window);
};
}
void f(A::window rhs)
{
std::cout << rhs.a << std::endl;
}
1) ¿por qué necesito para calificar la función miembro f dentro de la clase de ventana que ser global haciendo :: f (ventana)?
2) ¿Por qué necesito predecir la función f (A :: ventana) en este caso particular, mientras que cuando la clase no está definida dentro de un espacio de nombres está bien para la función declarada después de declarar la función amigo.
Aquí hay una explicación rápida sobre qué clases son amigables http://www.cplusplus.com/doc/tutorial/inheritance/ –
@Hans lo siento, pero esto está fuera de mi pregunta – AlexDan
@Hans, por favor, por favor, no enlace cplusplus.com - http://programmers.stackexchange.com/q/88241/36523 – Griwes