Un fichier .hpp est un fichier d'en-tête C++, servant un objectif similaire aux fichiers .h ou .hh en programmation C++. Ces fichiers contiennent principalement des déclarations de fonctions, de classes, de gabarits (templates) et de variables globales, mais généralement pas leurs définitions (implémentations). Le rôle principal d'un fichier d'en-tête est de fournir une interface que d'autres fichiers sources (fichiers .cpp) peuvent inclure pour accéder au code défini ailleurs. Lorsqu'un fichier .cpp inclut un fichier .hpp en utilisant la directive de préprocesseur #include, le contenu du fichier d'en-tête est effectivement copié dans le fichier source avant la compilation. Ce processus permet au compilateur de comprendre les signatures et les structures des composants utilisés, assurant la sûreté des types (type safety) et facilitant l'édition correcte lors du processus de construction (build process). L'extension .hpp est souvent utilisée pour désigner explicitement un fichier d'en-tête C++, le différenciant des fichiers d'en-tête C (.h), ou parfois spécifiquement pour les bibliothèques 'header-only' où l'implémentation entière, impliquant souvent des gabarits, est contenue dans l'en-tête lui-même. Les garde-fous d'en-tête (header guards, par exemple en utilisant #ifndef, #define, #endif ou #pragma once) sont essentiels dans les fichiers .hpp pour prévenir les inclusions multiples, ce qui pourrait entraîner des erreurs de redéfinition et des échecs de compilation. Ces fichiers sont du texte brut et sont édités à l'aide d'éditeurs de texte standards ou d'environnements de développement intégrés (IDE).