Initialisation & Nettoyage Le chapitre 4 a apporté une amélioration significative dans l'utilisation d'une bibliothèque en prenant tous les composants dispersés d'une bibliothèque typique du C et en les encapsulant dans une structure (un type de données abstrait, appelé dorénavant une classe). Ceci fournit non seulement un point d'entrée unique dans un composant de bibliothèque, mais cela cache également les noms des fonctions dans le nom de classe. Dans le chapitre 5, le contrôle d'accès (le masquage de l'implémentation) a été présenté. Ceci donne au concepteur de classe une manière d'établir des frontières claires pour déterminer ce que le programmeur client à la permission de manoeuvrer et ce qui hors des limites. Cela signifie que les mécanismes internes d'une opération d'un type de données sont sous le contrôle et la discrétion du concepteur de la classe, et il est clair pour les programmeurs de client à quels membres ils peuvent et devraient prêter attention. Ensemble, l'encapsulation et le contrôle d'accès permettent de franchir une étape significative en améliorant la facilité de l'utilisation de la bibliothèque. Le concept du “nouveau type de données” qu'ils fournissent est meilleur par certains côtés que les types de données intégrés existants du C. Le compilateur C++ peut maintenant fournir des garanties de vérification de type pour ce type de données et assurer ainsi un niveau de sûreté quand ce type de données est employé. Cependant quand il est question de sécurité, le compilateur peut en faire beaucoup plus pour nous que ce qui est proposé par le langage C. Dans ce chapitre et de futurs, vous verrez les dispositifs additionnels qui ont été mis en Œuvre en C++ qui font que les bogues dans votre programme vous sautent presque aux yeux et vous interpellent, parfois avant même que vous ne compiliez le programme, mais habituellement sous forme d'avertissements et d'erreurs de compilation. Pour cette raison, vous vous habituerez bientôt au scénario inhabituel d'un programme C++ qui compile fonctionne du premier coup. Deux de ces questions de sûreté sont l'initialisation et le nettoyage. Un grand partie des bogues C se produisent quand le programmeur oublie d'initialiser ou de vider une variable. C'est particulièrement vrai avec des bibliothèques C, quand les programmeurs de client ne savent pas initialiser une structure, ou même ce qu'ils doivent. (Les bibliothèques souvent n'incluent pas de fonction d'initialisation, ainsi le programmeur de client est forcé d'initialiser la struture à la main.) Le nettoyage est un problème spécial parce que les programmeurs en langage C oublient facilement les variables une fois qu'elles ne servent plus, raison pour laquelle le nettoyage qui peut être nécessaire pour une structure d'une bibliothèque est souvent oublié. En C++, le concept d'initialisation et de nettoyage est essentiel pour une utilisation facile d'une bibliothèque et pour éliminer les nombreux bogues subtiles qui se produisent quand le programmeur de client oublie d'exécuter ces actions. Ce chapitre examine les dispositifs C++ qui aident à garantir l'initialisation appropriée et le nettoyage.