CPP |.h файлы (C++)

Я просто задавался вопросом, каково различие между .cpp и.h файлами? Для чего я использовал бы заголовочный файл (.h) и для чего я буду использовать cpp файл?

8
задан Kunal Balani 9 August 2016 в 17:55
поделиться

6 ответов

В общем, и это действительно может быть гораздо менее общим:

.h (заголовочные) файлы предназначены для декларирования вещей, которые используются много раз, и являются #included в других файлах

.cpp (имплементационные) файлы предназначены для всего остального, и почти никогда #included

13
ответ дан 5 December 2019 в 07:58
поделиться

По условию, .h-файлы - это то, что вы #включаете. CPP файлы - это то, что вы добавляете в свой проект для компиляции в отдельный объектный файл, а затем передаете компоновщику

.
2
ответ дан 5 December 2019 в 07:58
поделиться

Файл .h называется заголовочным файлом. Обычно вы помещаете туда свой интерфейс (то, что вы хотите сделать публичным). Файл cpp - это то место, где вы на самом деле реализуете свой интерфейс.

1
ответ дан 5 December 2019 в 07:58
поделиться

Во-первых, оба являются текстовыми файлами, содержащими код для С++ компилятора или препроцессора. В системе нет никакой разницы.

Для обозначения содержимого файлов по условию используются различные расширения имен файлов. В программах на Си вы, как правило, видите .h и .c файлы, в то время как в C++ .hpp и .cpp служат одним и тем же целям.

Первая группа, .h и .hpp файлы, называемые заголовочными файлами, содержат в основном неисполняемый код, например, определения констант и прототипы функций. Они добавляются в программы с помощью директивы #include и используются не только данной программой или библиотекой, но и другими программами или библиотеками, которые будут использовать их, объявляя точки интерфейса и договоры, определяющие значения. Они также используются для задания метаданных, которые могут изменяться при компиляции для разных операционных систем.

Вторая группа, .c и .cpp файлы, содержит исполняемые части кода библиотеки или программы.

.
1
ответ дан 5 December 2019 в 07:58
поделиться

Поправьте меня, если я ошибаюсь, но,

Когда вы #include что-то, это более-менее вставляет весь включенный файл в файл с командой include; то есть, когда я включаю, говорю "macros.h" в "genericTools.cpp", все содержимое "macros.h" в этот момент помещается в "genericTools.cpp". Вот почему вам нужно использовать такие вещи, как "#pragma once" или другие защиты, чтобы предотвратить включение одного и того же файла дважды.

Обратите внимание, шаблонный код должен быть полностью в файле, который вы будете включать в другое место. (Я не уверен в этом - можно ли исключить специализацию шаблонов из включенных файлов и связать ее как обычную функцию?)

.
0
ответ дан 5 December 2019 в 07:58
поделиться

Технически никакой разницы нет. C++ позволяет помещать свой код в любой файл, в любом формате, и это должно работать.

По условию, вы помещаете свои объявления (в основном, те, которые составляют ваш API) в .h-файлы, и называете их "заголовками". Файлы .cpp предназначены для реальных "кишок" вашего кода - подробностей реализации.

Обычно, заголовочные файлы включены в #include другими файлами вашего проекта (и других проектов, если вы создаёте библиотеку), так что компилятор может получить интерфейс, необходимый для компиляции. Реализация, в .cpp файлах, как правило, реализована так, что есть один .cpp файл, "заполняющий" реализацию на каждый .h файл.

4
ответ дан 5 December 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: