Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Forward Declaration / Forward Reference, и увеличение скорости скомпиляции... 
V
    Опции темы
Любитель
Дата 22.4.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Баг VS, а не
Цитата(J0ker @  22.4.2009,  17:55 Найти цитируемый пост)
формально правильное поведение




--------------------
PM MAIL ICQ Skype   Вверх
Alek86
Дата 22.4.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(J0ker @  22.4.2009,  19:49 Найти цитируемый пост)
только если у вас оба хедера включены (прямо или косвенно) в проект

а как ты себе представляешь использование класса, если его хедер нигде не включен в проекте?


--------------------
user posted image    user posted image
PM MAIL   Вверх
J0ker
Дата 22.4.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(Alek86 @  22.4.2009,  20:46 Найти цитируемый пост)
а как ты себе представляешь использование класса, если его хедер нигде не включен в проекте? 

вот такой я любопытный  smile 


Это сообщение отредактировал(а) J0ker - 22.4.2009, 21:03


--------------------
user posted image
PM MAIL   Вверх
math64
Дата 23.4.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Цитата(Alek86 @  22.4.2009,  20:46 Найти цитируемый пост)
а как ты себе представляешь использование класса, если его хедер нигде не включен в проекте?

Класс определён в dll, а в проекте только forward declaration
PM   Вверх
Alek86
Дата 23.4.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



math64, и как компилер скомпилит обращение к какой-либо паблик функции этого класса, без ашника?


--------------------
user posted image    user posted image
PM MAIL   Вверх
math64
Дата 23.4.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Классы А и В - dll, A* a - private поле в классе В.
Класс C в проекте использует класс B, инкюдит заголовок В, в котором только предварительное объявление class A;
Работа с классом A - только через public методы класса B
PM   Вверх
J0ker
Дата 23.4.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 4
Всего: 14



Цитата(math64 @  23.4.2009,  10:39 Найти цитируемый пост)
Классы А и В - dll

или просто lib или даже obj

Это сообщение отредактировал(а) J0ker - 23.4.2009, 16:03


--------------------
user posted image
PM MAIL   Вверх
kamre
Дата 23.4.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



Цитата(math64 @ 23.4.2009,  10:39)
Классы А и В - dll, A* a - private поле в классе В.
Класс C в проекте использует класс B, инкюдит заголовок В, в котором только предварительное объявление class A;
Работа с классом A - только через public методы класса B

pimpl?
PM MAIL   Вверх
Alek86
Дата 23.4.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(math64 @  23.4.2009,  10:39 Найти цитируемый пост)
Классы А и В - dll, A* a - private поле в классе В.Класс C в проекте использует класс B, инкюдит заголовок В, в котором только предварительное объявление class A;Работа с классом A - только через public методы класса B

правда тогда ты вообще знаешь о существовании класса A только из-за его объявления в заголовке B
возможно, разработчики ассиста посчитали лишней тратой времени пытаться искать не нужный разработчику класс A по всему солюшену (кстати, его определения в солюшене может и не оказаться, а может оказаться несколько разных)


--------------------
user posted image    user posted image
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.