Maison >développement back-end >C++ >Mettre des définitions C dans des fichiers d'en-tête est-il vraiment la norme universelle ?
Le placement des définitions C dans les fichiers d'en-tête est-il la norme universelle ?
Le style de programmation de chacun dicte que les déclarations de classe sont stockées dans des fichiers d'inclusion, tandis que les définitions résider dans des fichiers .cpp distincts. Cette approche s'aligne sur le principe décrit dans la réponse largement appréciée de Loki dans l'article « Fichiers d'en-tête C, séparation de code ».
Cependant, un collègue insiste sur le fait que les déclarations C devraient généralement englober les définitions dans le même fichier d'en-tête. Il soutient qu'il s'agit d'une pratique moderne universellement adoptée.
Vérifier la prévalence de cette pratique
Pour vérifier la validité de cette affirmation, examinons les pratiques courantes observées dans l'industrie.
Réponse
Votre l'affirmation d'un collègue est incorrecte. La pratique répandue a toujours été, et reste, de conserver le code dans des fichiers .cpp (ou d'autres extensions désignées) et les déclarations dans les en-têtes.
Bien qu'il y ait des avantages occasionnels à placer du code dans les en-têtes, tels que l'intégration améliorée du compilateur , cela peut également entraîner des temps de compilation prolongés en raison du traitement répétitif du code lors de son inclusion. De plus, cela peut introduire des complexités avec les relations d'objet circulaires lorsque le code est contenu dans des en-têtes.
En résumé, la pratique dominante consistant à séparer le code et les déclarations correspond à vos préférences, contrairement à l'affirmation de votre collègue.
Exceptions et clarifications
Une exception notable concerne les modèles. Les bibliothèques modernes comme Boost utilisent massivement des modèles et adoptent fréquemment une approche « en-tête uniquement ». Cependant, il s'agit d'un scénario unique spécifiquement applicable aux modèles.
Inconvénients du code d'en-tête uniquement
Il est important de considérer les inconvénients de l'écriture de code d'en-tête uniquement :
Conclusion
Le traditionnel la pratique consistant à séparer les déclarations et les définitions reste l'approche dominante en C . Bien qu'il existe des scénarios spécifiques dans lesquels le code d'en-tête uniquement peut être bénéfique, il est crucial de comprendre ses limites et de l'utiliser judicieusement. L'adoption universelle prétendue des définitions d'en-tête uniquement est infondée et il est conseillé de maintenir la pratique bien établie consistant à séparer le code et les déclarations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!