Я два вопроса об этом коде ниже:друг функции класса внутри пространства имен
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) Почему я должен квалифицироваться функции члена е внутри оконного класса должен быть глобальным, делая :: f (окно)?
2) почему в этом конкретном случае необходимо предусмотреть функцию f (A :: window), тогда как когда класс не определен внутри пространства имен, нормально объявлять функцию после того, как функция объявлена друг.
Вот краткое объяснение того, какие дружественные классы http://www.cplusplus.com/doc/tutorial/inheritance/ –
@ Жаль, но это не мой вопрос – AlexDan
@ Спасибо, пожалуйста, не связывайтесь cplusplus.com - http://programmers.stackexchange.com/q/88241/36523 – Griwes