Défi : Passage de Structures Personnalisées en Tant qu'Arguments
Nous pouvons également passer des structures (classes) en tant qu'arguments de fonction. Cela s'effectue de la même manière que pour les types de données simples, en utilisant le nom de la structure (classe) comme spécificateur de type dans la signature de la fonction :
Comme pour les types de données simples, il est possible de passer des structures (classes) personnalisées par valeur, par pointeur ou par référence.
passByValue.cpp
passByPointer.cpp
passByReference.cpp
1234567891011121314151617181920212223#include <iostream> #include <string> // Define a custom structure struct Person { std::string name; int age; }; // Function that takes a Person structure by value void displayPersonInfo(Person p) { std::cout << "Name: " << p.name << ", Age: " << p.age << std::endl; } int main() { // Create a Person structure Person person1 = {"Alice", 30}; // Call the function and pass the Person structure by value displayPersonInfo(person1); }
Remarque
Il existe une méthode plus pratique pour accéder à l'attribut d'une structure via un pointeur : on peut utiliser l'opérateur
->au lieu de(*).. Par exemple :
p->nameau lieu de(*p).name;p->ageau lieu de(*p).age
Swipe to start coding
Vous avez un étudiant avec des notes dans 3 matières. Votre tâche est de calculer la moyenne des notes de l'étudiant.
- La fonction
calculateAverageGradeprend une structureStudentpar référence, représentant le nom de l'étudiant et ses notes en Mathématiques, Physique et Chimie. - À l'intérieur de
calculateAverageGrade, additionnez les trois notes des matières et assignez le résultat à la variableaverageScore(mathScore,physicsScore,chemistryScore). - Divisez
averageScorepar 3.0 pour obtenir la moyenne sous forme dedouble. - Déterminez la performance globale :
- Si
averageScore >= 90, affichez"Overall Performance: Excellent". - Si
averageScore >= 70, affichez"Overall Performance: Good". - Sinon, affichez
"Overall Performance: Needs Improvement".
- Si
Solution
solution.cpp
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 how passing by value, pointer, and reference works with structures?
Can you provide an example of a function that takes a structure as an argument?
What is the difference between using the `->` operator and the `.` operator with structures?
Awesome!
Completion rate improved to 5
Défi : Passage de Structures Personnalisées en Tant qu'Arguments
Glissez pour afficher le menu
Nous pouvons également passer des structures (classes) en tant qu'arguments de fonction. Cela s'effectue de la même manière que pour les types de données simples, en utilisant le nom de la structure (classe) comme spécificateur de type dans la signature de la fonction :
Comme pour les types de données simples, il est possible de passer des structures (classes) personnalisées par valeur, par pointeur ou par référence.
passByValue.cpp
passByPointer.cpp
passByReference.cpp
1234567891011121314151617181920212223#include <iostream> #include <string> // Define a custom structure struct Person { std::string name; int age; }; // Function that takes a Person structure by value void displayPersonInfo(Person p) { std::cout << "Name: " << p.name << ", Age: " << p.age << std::endl; } int main() { // Create a Person structure Person person1 = {"Alice", 30}; // Call the function and pass the Person structure by value displayPersonInfo(person1); }
Remarque
Il existe une méthode plus pratique pour accéder à l'attribut d'une structure via un pointeur : on peut utiliser l'opérateur
->au lieu de(*).. Par exemple :
p->nameau lieu de(*p).name;p->ageau lieu de(*p).age
Swipe to start coding
Vous avez un étudiant avec des notes dans 3 matières. Votre tâche est de calculer la moyenne des notes de l'étudiant.
- La fonction
calculateAverageGradeprend une structureStudentpar référence, représentant le nom de l'étudiant et ses notes en Mathématiques, Physique et Chimie. - À l'intérieur de
calculateAverageGrade, additionnez les trois notes des matières et assignez le résultat à la variableaverageScore(mathScore,physicsScore,chemistryScore). - Divisez
averageScorepar 3.0 pour obtenir la moyenne sous forme dedouble. - Déterminez la performance globale :
- Si
averageScore >= 90, affichez"Overall Performance: Excellent". - Si
averageScore >= 70, affichez"Overall Performance: Good". - Sinon, affichez
"Overall Performance: Needs Improvement".
- Si
Solution
solution.cpp
Merci pour vos commentaires !
single