| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Друзья класса - путаница с заголовочными файлами |
| Автор: Hassel 29.6.2011, 22:17 | ||||
| Пусть есть два класса, A и B. У каждого есть заголовочный файл и файл реализации. Оба класса циклически связаны друг с другом: Заголовочный файл a.h
Заголовочный файл b.h
Подобный код у меня не компилируется (получаю сообщение про incomplete type A и forward declaration of struct A). Если не сложно, обясните ошибку. |
| Автор: volatile 30.6.2011, 01:12 | ||||
| Если только то, что вы написали, то проблему должна решить небольшая перетасовка: Заголовочный файл a.h
Заголовочный файл b.h
|
| Автор: Hassel 30.6.2011, 11:15 |
| Спасибо, volatile. Сейчас попробую сформулировать: 1) "... функция-друг класса должна быть либо явно объявлена в охватывающей области видимости, либо иметь аргументы этого класса...". Страуструп, Язык программирования C++, 11.5.1 Поиск друзей 2) В момент, когда компилируется класс B, класс A объявлен, но методы класса A не объявлены, следовательно, имеет место нарушение п.1 А вот что значит: "...функция-друг класса должна быть либо ... либо иметь аргументы этого класса...", до меня пока как-то не доходит |
| Автор: Hassel 1.7.2011, 12:36 |
| Да, правильно, я просто для себя хотел сформулировать, почему возникала ошибка. Еще раз спасибо за помощь. |