Défi : Constructeur et Attributs
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
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Si aucune valeur n'est spécifiée pour l'attribut name de l'objet, il sera défini sur underfined par défaut. Il est possible de supprimer ce constructeur pour observer les changements qui en résultent.
Initialisation des attributs avec le constructeur
À l'instar des fonctions, les constructeurs peuvent accepter des paramètres, permettant ainsi de fournir 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
123456789101112131415161718class 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); }
Swipe to start coding
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.
- Implémenter un constructeur qui initialise les trois champs :
- Le constructeur doit prendre trois paramètres : un
std::stringpour le nom, et deux valeursdoublepour les coordonnées x et y. - À l'intérieur du constructeur, affectez le paramètre du nom au champ
namede l'objet. - Affectez le paramètre de la coordonnée x au champ
xde l'objet. - Affectez le paramètre de la coordonnée y au champ
yde l'objet.
- Le constructeur doit prendre trois paramètres : un
- Implémentez une méthode
distanceToqui prend un autre objetLocationen paramètre :- Accédez aux coordonnées
xetyde 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 en utilisant la formule :
sqrt(dx * dx + dy * dy). - Retournez la distance calculée en tant que
double.
- Accédez aux coordonnées
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
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain what a constructor is in more detail?
What does it mean to overload a constructor?
Can you give an example of initializing attributes with a constructor?
Awesome!
Completion rate improved to 3.13
Défi : 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
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Si aucune valeur n'est spécifiée pour l'attribut name de l'objet, il sera défini sur underfined par défaut. Il est possible de supprimer ce constructeur pour observer les changements qui en résultent.
Initialisation des attributs avec le constructeur
À l'instar des fonctions, les constructeurs peuvent accepter des paramètres, permettant ainsi de fournir 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
123456789101112131415161718class 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); }
Swipe to start coding
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.
- Implémenter un constructeur qui initialise les trois champs :
- Le constructeur doit prendre trois paramètres : un
std::stringpour le nom, et deux valeursdoublepour les coordonnées x et y. - À l'intérieur du constructeur, affectez le paramètre du nom au champ
namede l'objet. - Affectez le paramètre de la coordonnée x au champ
xde l'objet. - Affectez le paramètre de la coordonnée y au champ
yde l'objet.
- Le constructeur doit prendre trois paramètres : un
- Implémentez une méthode
distanceToqui prend un autre objetLocationen paramètre :- Accédez aux coordonnées
xetyde 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 en utilisant la formule :
sqrt(dx * dx + dy * dy). - Retournez la distance calculée en tant que
double.
- Accédez aux coordonnées
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
Merci pour vos commentaires !
single