Що таке файл 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
. Якщо заголовок неодноразово включається в той самий файл, вміст заголовка ігноруватиметься.