Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Перекрёстные ссылки в C++  (Прочитано 6955 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Malamut

  • Автор темы
  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Перекрёстные ссылки в C++
« Ответ #15 : 29 Июня 2009, 19:10:15 »
Ладно, разобрался я. Делать это в общем случае надо так: перед инклудом писать объявления всех классов, которые инклудим и на которые хотим иметь ссылки ниже. Не писать инклуд в некоторых файлах для используемого класса, а заменять его пустышкой как у ubuntar - плохой тон, да и в большой системе просто запутаться. Если писать после инклуда - то gcc ругается, и вообще-то он прав, см. описание include. А про проектирование - это не ошибка, а способ решать многие проблемы обратной связи. Древовидная структура наследования и включения - это не труЪ в высшей инстанции)) Ссылки - великая вещь.
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Перекрёстные ссылки в C++
« Ответ #16 : 30 Июня 2009, 00:25:37 »
Делать это в общем случае надо так: перед инклудом писать объявления всех классов, которые инклудим и на которые хотим иметь ссылки ниже.
...
Если писать после инклуда - то gcc ругается, и вообще-то он прав, см. описание include.

Проверил такой код:
(Нажмите, чтобы показать/скрыть)

Ни gcc, ни g++ ошибок не выдали. Просто я в предыдущем примере не написал ";" по окончании определений классов.
Определение должно быть одно, а объявлений -- столько, сколько надо.

Оффлайн Malamut

  • Автор темы
  • Ubuntu Member
  • Администратор
  • Старожил
  • *
  • Сообщений: 3337
  • Я добрый, честно!
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Перекрёстные ссылки в C++
« Ответ #17 : 03 Июля 2009, 23:08:42 »
Весьма странно, еклипс и Visual C++ такими фокусами плюються, ну да ладно, всё собственно само разрешилось и заработало.
"Носителем суверенитета и единственным источником власти в Российской Федерации является ее многонациональный народ" Конституция РФ

 

Страница сгенерирована за 0.023 секунд. Запросов: 22.