Вызов функции скрытого другаC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Вызов функции скрытого друга

Сообщение Гость »


Рассмотрим следующий код:

struct A { друг void foo(A& a) {} }; структура Б { недействительный Фу() { А а; Фу(а); // не компилируется, потому что дружественная функция "foo" скрыта } }; интервал основной() { А а; Фу(а); // ОК здесь } В функции main я могу легко вызвать дружественную функцию foo, определенную внутри класса A.

В функции B::foo тот же код не компилируется, поскольку дружественная функция foo скрыта внутри класса B своим членом функция.

Есть ли способ вызвать исходную скрытую функцию внутри B без переименования B::foo? Я пытался использовать ::foo(a); или A::foo(a);, но они тоже не компилируются.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»