2013-09-10 2 views
-2

Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?

Мне интересно, выполняет ли отладчик работу или ее просто не нужно?

+2

Поскольку файл .cpp включает. h файл. Не настоящий вопрос. – EJP

+0

Это делается компилятором (http://en.wikipedia.org/wiki/Compiler) и [linker] (http://en.wikipedia.org/wiki/Linker_%28computing%29) –

+0

@ BasileStarynkevitch Нет, это не «сделано компилятором и компоновщиком». Это не делается вообще. – EJP

ответ

0

Компилятор просто нуждается в файле заголовка для соответствия интерфейсам.

Для запуска и выполнения кода вам нужна реализация, но не в источнике, а как в библиотеке. Это может быть динамический (.so-файл на linux, .dll в Windows) или он статически связан после компиляции.

Для отладки вам необходим исходный файл для прохождения по строкам.

0

Файл заголовка - это, прежде всего, объявления типа и ссылки на код, который реализован в других файлах. Исходные файлы должны знать эти объявления, но файлы заголовков не должны знать реализации (кроме встроенных). Несколько исходных файлов могут использовать один и тот же заголовочный файл, и компоновщик будет обеспечивать, чтобы они получали доступ к коду общей реализации по мере необходимости.

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