Fichiers en tête
Fichiers en-tête
Un des objectifs de la programmation orientée objet est de séparer les différents éléments d’une application pour les rendre réutilisables. Plutôt que de redéfinir la classe Animal dans chaque programme qui aura besoin de l’utiliser, avec tous les risques d’erreur qui en résulteraient et les problèmes de maintenance que poserait une mise à jour de la classe, vous allez l’enregistrer une fois dans un fichier qui sera ensuite inclus au début du programme. Ce fichier peut même contenir toute la partie déclarative du programme : les prototypes de fonction et les déclarations de classe (ou définition de type).Par convention, ce fichier prend le nom du fichier source (.cpp) ou celui de la classe avec l’extension .h. On utilisera cette fois la directive #include avec des guillemets doubles plutôt qu’avec des chevrons < >.
Le code des exemples présentés dans la suite de ce chapitre sera enregistré selon cette convention. Cependant, dans la suite de l’ouvrage, le programme sera le plus souvent présenté dans un seul fichier (.cpp) afin d’en simplifier l’analyse (en présentant par exemple les diverses définitions immédiatement après chaque définition de classe).
Quand un programme grossit et que vous employez de nombreux fichiers d’en-tête, vous risquez, sans le vouloir, d’en inclure un plusieurs fois, ce qui pourrait provoquer des erreurs à la compilation puisque vous n’avez pas le droit de définir plusieurs fois la même classe. Pour résoudre ce problème, il suffit d’inclure les lignes suivantes au début et à la fin de chaque fichier .h :
#ifndef Date_h //si le terme Date_h n’a pas encore été défini #define Date_h //on exécute les lignes qui suivent... /** Code du fichier **/ #endif //...jusqu’à l’instruction #endif
Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)