В курсе C++ для начинающих я обнаружил, что нет необходимости использовать только файлы .cpp
и что мы можем использовать файлы .hpp
.
Но учитель не объяснил, для чего эти файлы.
Так что же такое заголовки .hpp
в C++ и для чего они нужны?
В курсе C++ для начинающих я обнаружил, что нет необходимости использовать только файлы .cpp
и что мы можем использовать файлы .hpp
.
Но учитель не объяснил, для чего эти файлы.
Так что же такое заголовки .hpp
в C++ и для чего они нужны?
Заголовки языка C имеют расширение
.h
(заголовок). Поскольку C++ — это другой язык, было решено использовать другое расширение, которое будет.hpp
(заголовок плюс плюс).Но это произвольный выбор, вы можете использовать любое расширение для заголовков; Пока компилятор может читать и интерпретировать содержимое файла, заголовок не имеет значения:
Уверяю вас, что если файлы
Ejercicio1.txt
,Patatas.fritas
yno_tengo_extension
существуют, их примет любой компилятор C++.При структурировании кода на C++ вы можете поместить весь код в один файл:
файл1
main.cpp
Это решение создает несколько проблем, которые становятся очевидными, когда проект начинает расти в размерах:
файл А
файлB
main.cpp
Примечание. Я решил использовать
#pragma once
, даже если это не является стандартом, чтобы в код было внесено наименьшее количество украшений.Чтобы решить эти две проблемы, мы можем разделить функции и классы на две части (определение и реализация):
Приведенный выше пример должным образом адаптирован:
файл А
файлA.cpp
файлB
файлB.cpp
Отделив объявление от реализации, взаимозависимость была устранена (зависимость была перенесена в файл реализации, от которого не зависит ни один другой файл), и теперь код может быть скомпилирован.
Таким образом, заголовки будут использоваться для указания интерфейса классов и функций, а исходный код останется в файлах реализации.
Примечание. Функции и должны
inline
размещать реализацию в заголовке, поскольку текущие ограничения не позволяют компилятору найти их реализацию в файле исходного кода.constexpr
template