Автор Dfhcghcgj задал вопрос в разделе Другие языки и технологии
Дружественные классы. С++ и получил лучший ответ
Ответ от Зло[гуру]
предъобъявление используй
class SF;
class FF //First Friend
{
friend class SF;
};
class SF //Second Friend
{
friend class FF;
};
Ответ от Xraux[гуру]
Проблема в чем-то другом, согласно стандартам допустимо определять неизвестный класс в качестве дружественного, и приведенный код должен работать. Может быть, вы какой-нибудь древний компилятор используете? Покажите версию компилера и ошибки, которые он вам показывает.
ЗЫ. Проверял на g++ 4.7.3 (ubuntu) - работает.
Проблема в чем-то другом, согласно стандартам допустимо определять неизвестный класс в качестве дружественного, и приведенный код должен работать. Может быть, вы какой-нибудь древний компилятор используете? Покажите версию компилера и ошибки, которые он вам показывает.
ЗЫ. Проверял на g++ 4.7.3 (ubuntu) - работает.
Ответ от =Serge=[гуру]
Ловко ты закрутил. Только вначале речь шла про взаимно дружественные классы. Это делается с помощью предобьявления, как пишет Зло. Однако далее ты приводишь нечто другое - а именно взаимное соотношения включения между классами, пусть и дружественными. И теперь прикинь, как обьект такого класса должен создаваться?
Вытянуть себя за волосы из болота?
Дружественность - это другое.
Ловко ты закрутил. Только вначале речь шла про взаимно дружественные классы. Это делается с помощью предобьявления, как пишет Зло. Однако далее ты приводишь нечто другое - а именно взаимное соотношения включения между классами, пусть и дружественными. И теперь прикинь, как обьект такого класса должен создаваться?
Вытянуть себя за волосы из болота?
Дружественность - это другое.
Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Дружественные классы. С++