Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?
Мне интересно, выполняет ли отладчик работу или ее просто не нужно?
Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?Почему заголовочный файл C++ не должен включать файл реализации (.cpp)?
Мне интересно, выполняет ли отладчик работу или ее просто не нужно?
.cpp файл содержит заголовок, а не наоборот
Ваш вопрос был дан ответ здесь:
Why don't I need to include library.cpp in the header?
Успехов
o (> ﹏ <) o Извините, я снова включил энтропию во вселенной – Bruce
Компилятор просто нуждается в файле заголовка для соответствия интерфейсам.
Для запуска и выполнения кода вам нужна реализация, но не в источнике, а как в библиотеке. Это может быть динамический (.so-файл на linux, .dll в Windows) или он статически связан после компиляции.
Для отладки вам необходим исходный файл для прохождения по строкам.
Файл заголовка - это, прежде всего, объявления типа и ссылки на код, который реализован в других файлах. Исходные файлы должны знать эти объявления, но файлы заголовков не должны знать реализации (кроме встроенных). Несколько исходных файлов могут использовать один и тот же заголовочный файл, и компоновщик будет обеспечивать, чтобы они получали доступ к коду общей реализации по мере необходимости.
Поскольку файл .cpp включает. h файл. Не настоящий вопрос. – EJP
Это делается компилятором (http://en.wikipedia.org/wiki/Compiler) и [linker] (http://en.wikipedia.org/wiki/Linker_%28computing%29) –
@ BasileStarynkevitch Нет, это не «сделано компилятором и компоновщиком». Это не делается вообще. – EJP