Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Challenge: Constructeur et Attributs | Constructeurs et Destructeurs
POO en C++
Section 2. Chapitre 2
single

single

Challenge: Constructeur et Attributs

Glissez pour afficher le menu

L'une des principales utilisations des constructeurs est d'initialiser les attributs de la classe. Un constructeur par défaut, par exemple, peut être utilisé pour définir des valeurs initiales. Par exemple :

main.cpp

main.cpp

1234567891011121314
#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }

Si vous ne spécifiez pas de valeur pour l'attribut name de l'objet, il sera défini sur underfined par défaut. Vous pouvez essayer de supprimer ce constructeur pour observer les changements qui se produisent.

Initialisation des attributs avec le constructeur

Comme les fonctions, les constructeurs peuvent prendre des paramètres, permettant ainsi différents arguments lors de la création d'un objet. Il est également possible de les surcharger pour gérer un nombre variable d'arguments.

main.cpp

main.cpp

123456789101112131415161718
class Person { public: Person(std::string _name, std::string _surname, int _age) { name = _name; surname = _surname; age = _age; } std::string name; std::string surname; int age; }; int main() { Person person("Bob", "Song", 23); }
Tâche

Glissez pour commencer à coder

Imaginez que vous développez un système de cartographie simple. Vous devez créer une classe Location qui représente un point sur une carte avec un nom et des coordonnées. Votre tâche consiste à implémenter un constructeur et une méthode pour calculer la distance jusqu'à un autre emplacement.

  1. Implémentation d'un constructeur qui initialise les trois champs :
    • Le constructeur doit prendre trois paramètres : un std::string pour le nom, et deux valeurs double pour les coordonnées x et y.
    • À l'intérieur du constructeur, affectez le paramètre du nom au champ name de l'objet.
    • Affectez le paramètre de la coordonnée x au champ x de l'objet.
    • Affectez le paramètre de la coordonnée y au champ y de l'objet.
  2. Implémentez une méthode distanceTo qui prend un autre objet Location en paramètre :
    • Accédez aux coordonnées x et y de l'objet courant et de l'autre objet.
    • Calculez la différence des coordonnées x : other.x - x.
    • Calculez la différence des coordonnées y : other.y - y.
    • Calculez la distance à l'aide de la formule : sqrt(dx * dx + dy * dy).
    • Retournez la distance calculée en tant que double.

Exemple

Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and Location("Library", 2.0, 3.0) -> 5.0

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt