Au chapitre précédent, vous avez vu que la programmation orientée objet pouvait nous simplifier la vie en masquant, en quelque sorte, le code complexe. C'est un des avantages de la POO mais ce n'est pas le seul, comme vous allez le découvrir petit à petit : les objets sont aussi facilement réutilisables et modifiables.
Bénéficiez gratuitement de toutes les fonctionnalités de ce cours (quiz, vidéos, accès illimité à tous les chapitres) avec un compte. L'idée de la programmation orientée objet, c'est de manipuler dans son code source des éléments que l'on appelle des "objets".
C'est un des avantages de la POO mais ce n'est pas le seul, comme vous allez le découvrir petit à petit : les objets sont aussi facilement réutilisables et modifiables. À partir de maintenant, nous allons apprendre à créer des objets.
Des types très basiques, comme int, double ou bool, peuvent être considérés comme des objets d’un point de vue théorique. En pratique, en C++, on fera la distinction entre ces types dits natifs et les instances de classes, comme std::string. Un objet peut nous rendre plus ou moins de services, en fonction de son type.
Le rôle principal du constructeur est d'initialiser les attributs. En effet, souvenez-vous : nos attributs sont déclarés dans Personnage.hppmais ils ne sont pas initialisés Revoici le code du fichier Personnage.hpp: Parce qu'on n'a pas le droit d'initialiser les attributs ici. C'est justement dans le constructeur qu'il faut le faire. See full list on openclassrooms.com
Pour créer un constructeur, il y a deux règles à respecter : 1. Il faut que la méthode ait le même nom que la classe. Dans notre cas, la méthode devra donc s'appeler "Personnage". 2. La méthode ne doit rien renvoyer, pas même void C'est une méthode sans aucun type de retour. Si on déclare son prototype dans Personnage.hpp, cela donne le code suiva
Reprenons le constructeur que nous venons de créer : Le code que vous allez voir ci-dessous produit le même effet : La nouveauté, c'est qu'on rajoute un symbole :(suivi de la liste des attributs que l'on veut initialiser avec, entre parenthèses, la valeur). Avec ce code, on initialise la vie à 100, le mana à 100, l'attribut m_nomArmeà "Épée rouillé
Vous savez qu'en C++, on a le droit de surcharger les fonctions, donc de surcharger les méthodes. Et comme le constructeur est une méthode, on a le droit de le surcharger lui aussi. Cela permet de créer un objet de plusieurs façons différentes. Pour l'instant, on a créé un constructeur sans paramètre : Supposons que l'on souhaite créer un personnag
Par exemple si l'on souhaite que david soit une copie conforme de goliath, il nous suffit d'écrire : Le compilateur crée ce constructeur automatiquement pour vous C'est donc toute une partie du travail qui nous est épargnée. Merci le compilateur. Si toutefois, vous désirez changer le comportement du constructeur de copie, il faut simplement : 1.