Kursinhalt
C++ Funktionen
C++ Funktionen
Übergeben von Benutzerdefinierten Strukturen als Argumente
Wir können auch Strukturen (Klassen) als Argumente der Funktion übergeben. Wir können dies genauso machen wie beim Übergeben einfacher Datentypen, indem wir den Struktur (Klassen) Name als Typspezifizierer in der Funktionssignatur verwenden:
Wie bei einfachen Datentypen können wir benutzerdefinierte Strukturen (Klassen) per Wert, Zeiger oder Referenz übergeben.
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); }
Hinweis
Es gibt eine weitere, bequemere Möglichkeit, über einen Zeiger auf das Attribut der Struktur zuzugreifen: Wir können den
->
Operator anstelle von(*).
verwenden. Zum Beispiel:
p->name
anstelle von(*p).name
;p->age
anstelle von(*p).age
Swipe to start coding
Erstellen Sie eine Funktion, um die Durchschnittsnote des Studenten basierend auf seinen Ergebnissen in verschiedenen Fächern zu berechnen und seine Gesamtleistung anzuzeigen.
Wir haben diese Aufgabe bereits zuvor mit einem 2-dimensionalen statischen Array gelöst, aber nun werden wir sie mit einer benutzerdefinierten Struktur umsetzen.
Ihre Aufgabe ist es, den Code wie folgt zu modifizieren:
-
Die Funktion muss das
student
Argument per Referenz empfangen. -
Berechnen Sie die Durchschnittsnote des Studenten innerhalb der Funktion (Variable
averageScore
) -
Rufen Sie die Funktion auf und übergeben Sie den erstellten Wert
student1
als Argument an die Funktion.
Lösung
solution
Danke für Ihr Feedback!
Übergeben von Benutzerdefinierten Strukturen als Argumente
Wir können auch Strukturen (Klassen) als Argumente der Funktion übergeben. Wir können dies genauso machen wie beim Übergeben einfacher Datentypen, indem wir den Struktur (Klassen) Name als Typspezifizierer in der Funktionssignatur verwenden:
Wie bei einfachen Datentypen können wir benutzerdefinierte Strukturen (Klassen) per Wert, Zeiger oder Referenz übergeben.
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); }
Hinweis
Es gibt eine weitere, bequemere Möglichkeit, über einen Zeiger auf das Attribut der Struktur zuzugreifen: Wir können den
->
Operator anstelle von(*).
verwenden. Zum Beispiel:
p->name
anstelle von(*p).name
;p->age
anstelle von(*p).age
Swipe to start coding
Erstellen Sie eine Funktion, um die Durchschnittsnote des Studenten basierend auf seinen Ergebnissen in verschiedenen Fächern zu berechnen und seine Gesamtleistung anzuzeigen.
Wir haben diese Aufgabe bereits zuvor mit einem 2-dimensionalen statischen Array gelöst, aber nun werden wir sie mit einer benutzerdefinierten Struktur umsetzen.
Ihre Aufgabe ist es, den Code wie folgt zu modifizieren:
-
Die Funktion muss das
student
Argument per Referenz empfangen. -
Berechnen Sie die Durchschnittsnote des Studenten innerhalb der Funktion (Variable
averageScore
) -
Rufen Sie die Funktion auf und übergeben Sie den erstellten Wert
student1
als Argument an die Funktion.
Lösung
solution
Danke für Ihr Feedback!