2016-05-03 1 views
3

Заголовок используется для разделения «декларации» (.h файлов) из «реализации» (.cpp файлов), но также для импорта librareis, поэтому обычно нет #include ..." в .cpp file.Включите библиотеки в .cpp-файлы?

Но давайте предположим, что some-library.h нужен только для некоторой операции, проделанной в конкретной реализации foo() в некоторых .cpp файл: я должен #include "some-library.h" в .h файле (где foo() объявлена) или включить его в файл .cpp (где реализован foo())?

Я бы сказал, второй, поскольку библиотека нужна только для реализации, но я бы предпочел ответ от кого-то более экспертного, чем меня по этой теме.

+0

Заголовки не используются для импорта библиотек. Единственный способ, который мог бы работать, - это если библиотека была в одном заголовочном файле, и не было скомпилированного компонента. – juanchopanza

ответ

4

Вы должны включить свою библиотеку именно там, где вы ее используете. Если в вашем файле заголовка не используется библиотека, не включайте его.

Включая его в заголовок, вы получите много головной боли. Например, вы должны распространять его с вашим проектом (если ваш выход является библиотекой).

+2

Он также может увеличивать время компиляции, если вы включаете файлы заголовков без необходимости. – Arcinde

+1

Хорошей практикой является использование форвардного объявления _weverever possible_, а не включение файла заголовка. –

+0

Я думаю, что вы не можете встретить путаницу OP относительно заголовков и библиотек. – juanchopanza

 Смежные вопросы

  • Нет связанных вопросов^_^