Contenu du cours
Fonctions C++
Fonctions C++
Passer des Structures Personnalisées comme Arguments
Nous pouvons également passer des structures (classes) en tant qu'arguments de la fonction. Nous pouvons le faire de la même manière que pour passer un type de données simple en utilisant nom de la structure (classe) comme spécificateur de type dans la signature de la fonction:
Comme pour les types de données simples, nous pouvons passer des structures personnalisées (classes) par valeur, par pointeur ou par référence.
passByValue
passByPointer
passByReference
#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 autre façon plus confortable d'accéder à un attribut de la structure via un pointeur : nous pouvons utiliser l'opérateur
->
au lieu de(*).
. Par exemple:
p->name
au lieu de(*p).name
;p->age
au lieu de(*p).age
Swipe to start coding
Créons une fonction pour calculer la moyenne des notes de l'étudiant basée sur ses scores dans différentes matières et afficher sa performance globale.
Nous avions déjà réalisé cette tâche en utilisant un tableau statique bidimensionnel auparavant, mais maintenant nous allons le faire avec une structure personnalisée.
Votre tâche consiste à modifier le code de la manière suivante:
-
La fonction doit recevoir l'argument
student
par référence. -
Calculer la moyenne des scores de l'étudiant à l'intérieur de la fonction (variable
averageScore
). -
Appeler la fonction et passer la valeur créée
student1
comme argument de la fonction.
Solution
solution
Merci pour vos commentaires !
Passer des Structures Personnalisées comme Arguments
Nous pouvons également passer des structures (classes) en tant qu'arguments de la fonction. Nous pouvons le faire de la même manière que pour passer un type de données simple en utilisant nom de la structure (classe) comme spécificateur de type dans la signature de la fonction:
Comme pour les types de données simples, nous pouvons passer des structures personnalisées (classes) par valeur, par pointeur ou par référence.
passByValue
passByPointer
passByReference
#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 autre façon plus confortable d'accéder à un attribut de la structure via un pointeur : nous pouvons utiliser l'opérateur
->
au lieu de(*).
. Par exemple:
p->name
au lieu de(*p).name
;p->age
au lieu de(*p).age
Swipe to start coding
Créons une fonction pour calculer la moyenne des notes de l'étudiant basée sur ses scores dans différentes matières et afficher sa performance globale.
Nous avions déjà réalisé cette tâche en utilisant un tableau statique bidimensionnel auparavant, mais maintenant nous allons le faire avec une structure personnalisée.
Votre tâche consiste à modifier le code de la manière suivante:
-
La fonction doit recevoir l'argument
student
par référence. -
Calculer la moyenne des scores de l'étudiant à l'intérieur de la fonction (variable
averageScore
). -
Appeler la fonction et passer la valeur créée
student1
comme argument de la fonction.
Solution
solution
Merci pour vos commentaires !