Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Challenge: Passing Custom Structures as Arguments | Function Arguments Specification
C++ Functions

bookChallenge: Passing Custom Structures as Arguments

We can also pass structures (classes) as arguments of the function. We can do it the same as passing simple data type by using structure (class) name as a type specifier inside the function signature:

Like simple data types, we can pass custom structures (classes) by value, pointer, or reference.

passByValue.cpp

passByValue.cpp

passByPointer.cpp

passByPointer.cpp

passByReference.cpp

passByReference.cpp

copy
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); }

Note

There is another more comfortable way to access the attribute of the structure via pointer: we can use the -> operator instead of (*).. For example:

  • p->name instead of (*p).name;
  • p->age instead of (*p).age
Tehtävä

Swipe to start coding

You have a student with grades in 3 subjects. Your task is to calculate the student's average grade.

  1. The function calculateAverageGrade takes a Student structure by reference, representing the student's name and grades in Math, Physics, and Chemistry.
  2. Inside calculateAverageGrade, add the three subject scores and assign the result to the variable averageScore (mathScore, physicsScore, chemistryScore).
  3. Divide averageScore by 3.0 to get the average grade as a double.
  4. Determine the overall performance:
    • If averageScore >= 90, print "Overall Performance: Excellent".
    • If averageScore >= 70, print "Overall Performance: Good".
    • Otherwise, print "Overall Performance: Needs Improvement".

Ratkaisu

solution.cpp

solution.cpp

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 5

bookChallenge: Passing Custom Structures as Arguments

Pyyhkäise näyttääksesi valikon

We can also pass structures (classes) as arguments of the function. We can do it the same as passing simple data type by using structure (class) name as a type specifier inside the function signature:

Like simple data types, we can pass custom structures (classes) by value, pointer, or reference.

passByValue.cpp

passByValue.cpp

passByPointer.cpp

passByPointer.cpp

passByReference.cpp

passByReference.cpp

copy
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); }

Note

There is another more comfortable way to access the attribute of the structure via pointer: we can use the -> operator instead of (*).. For example:

  • p->name instead of (*p).name;
  • p->age instead of (*p).age
Tehtävä

Swipe to start coding

You have a student with grades in 3 subjects. Your task is to calculate the student's average grade.

  1. The function calculateAverageGrade takes a Student structure by reference, representing the student's name and grades in Math, Physics, and Chemistry.
  2. Inside calculateAverageGrade, add the three subject scores and assign the result to the variable averageScore (mathScore, physicsScore, chemistryScore).
  3. Divide averageScore by 3.0 to get the average grade as a double.
  4. Determine the overall performance:
    • If averageScore >= 90, print "Overall Performance: Excellent".
    • If averageScore >= 70, print "Overall Performance: Good".
    • Otherwise, print "Overall Performance: Needs Improvement".

Ratkaisu

solution.cpp

solution.cpp

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7
single

single

some-alt