Résumé : Chap 1 – Les classes
Ce chapitre a pour objectif d’introduire les classes, qui constituent l’un des fondements de la programmation orientée objet en C++.
Il commence par montrer comment organiser un projet important dans plusieurs fichiers. Le fichier principal contient le déroulement général, le fichier d’en-tête décrit la classe et le fichier source contient l’implémentation de ses méthodes.
Cette séparation entre déclarations et définitions améliore la lisibilité, la maintenance et la réutilisation du code. Elle prépare également le lecteur au fonctionnement habituel des projets C++ réels.
Le chapitre présente ensuite une classe comme une évolution naturelle des structures. Elle permet de réunir dans une même entité les données décrivant un objet et les fonctions chargées de les manipuler.
Une fonction appartenant à une classe est appelée une méthode. Elle est invoquée à partir d’un objet avec l’opérateur point et travaille automatiquement sur l’objet concerné par l’appel.
La définition d’une méthode placée dans un fichier source utilise l’opérateur de résolution de portée, comme dans Date::afficher(), afin d’indiquer son appartenance à la classe.
Le chapitre introduit ensuite l’encapsulation. Les données déclarées avec private ne peuvent plus être modifiées directement depuis l’extérieur, ce qui protège l’objet contre des valeurs incohérentes.
Les constructeurs permettent de créer des objets immédiatement utilisables. Ils portent le même nom que la classe, ne possèdent aucun type de retour et sont appelés automatiquement lors de la création de chaque objet.
Les getters offrent un accès contrôlé en lecture aux données privées. Comme ils ne modifient normalement pas l’objet, ils sont généralement déclarés avec le mot-clé const.
Les setters autorisent une modification contrôlée des membres privés. Ils peuvent vérifier les valeurs reçues avant de les enregistrer et empêcher ainsi l’objet d’atteindre un état invalide.
Le chapitre explique également que la signature d’une méthode dépend de son nom et de ses paramètres, mais pas de son type de retour. Cette règle permet au compilateur de sélectionner une méthode sans ambiguïté.
Enfin, la liste d’initialisation est présentée comme la manière naturelle d’initialiser les membres dans un constructeur. Elle construit directement les données de l’objet et devient indispensable pour les membres constants ou les références.
Le but général est donc d’apprendre à concevoir une classe qui regroupe ses données et ses comportements, contrôle son propre état et s’intègre proprement dans un projet réparti entre plusieurs fichiers.
hweihfwieouhfweiufhwieufhwieufhiuwfeh