.HH вариант №
Файл с расширением .hh представляет собой заголовочный файл C++, который включает объявление переменных, констант и функций. Эти объявления используются соответствующими файлами реализации C++, обычно сохраняемыми как файлы .cpp, которые содержат реальную реализацию пользовательской логики. На файлы заголовков .hh ссылаются в файлах реализации CPP с помощью директивы #include
. Вы можете добавить в свой проект C++ как можно больше файлов заголовков, чтобы включить объявления на уровне проекта.
Формат файла .HH
Файл .hh — это обычный текстовый файл, созданный с учетом правил определения файла заголовка. Наиболее распространенная информация, объявленная в файле .hh, включает следующее.
Переменные
— в случае объектно-ориентированного программирования (ООП) файл заголовка класса содержит определения всех переменных уровня класса, которые доступны в файлах исходного кода реализации.
Объявление методов
— все объявления методов включены в файлы заголовков .h, чтобы быть доступными для нескольких файлов реализации.
Определения невстроенных функций
— заголовочные файлы также могут содержать определения невстроенных методов.
Карты сообщений
— файл заголовка также может содержать карты сообщений в случае реализации исходного кода MFC. В таком случае карты сообщений связаны с реализацией функциональности, которая связана с элементами пользовательского интерфейса, такими как кнопка, флажок, переключатель и т. д.
Разница между файлами .H и .HH
По-видимому, между файлами заголовков .h и .hh нет такой разницы, кроме рекомендуемого способа их использования для соответствующих языков, т.е. C или C++. Именование файлов заголовков в соответствии с этими языками поможет вам различать их в большом проекте, который может представлять собой сочетание реализаций C и C++.
Кроме того, если заголовки разделены по расширению, ваш редактор может автоматически применять соответствующее форматирование соответственно.
В целом, различие этих двух форматов файлов не принесет никакого вреда, но будет полезным, и рекомендуется следовать различию C и C++.
Защита заголовка
Файлы заголовков могут привести к сложным ошибкам, когда несколько объявлений включены в один и тот же файл в результате добавления других файлов заголовков. Эти повторяющиеся определения вызывают ошибки компилятора. Этой проблемной ситуации можно избежать с помощью механизма, называемого защитой заголовка, который представляет собой директивы условной компиляции, как показано ниже.
#ifndef ANY_UNIQUE_NAME_HERE_HPP
#define ANY_UNIQUE_NAME_HERE_HPP
// your declarations (and certain types of definitions) here
#endif
С помощью этого заголовка препроцессор проверяет, был ли уже определен ANY_UNIQUE_NAME_HERE_HPP. Если заголовок повторно включен в один и тот же файл, содержимое заголовка будет проигнорировано.