Skip to content
Related Articles

Related Articles

Improve Article
Passing array of objects as parameter in C++
  • Last Updated : 27 Jan, 2021

Array of Objects:It is an array whose elements are of the class type. It can be declared as an array of any datatype.

Syntax:

classname array_name [size];

Below is the C++ program to illustrate the array of objects by calculating the highest marks among 3 students:

C++






// C++ program to illustrate the
// passing the array of objects
// to function parameter
#include <bits/stdc++.h>
using namespace std;
  
// Class Student
class Student {
    int roll;
    char name[50];
    int total;
  
public:
    // Function to input Roll Number
    void getdata()
    {
        cout << "Enter your Roll: "
             << endl;
        cin >> roll;
        cout << "Enter your Name: "
             << endl;
        cin.ignore();
        cin.get(name, 50);
        cout << "Enter your Total "
             << "Marks: " << endl;
        cin >> total;
    }
  
    // Function to pass the array of
    // objects
    int pos(Student obj[], int size)
    {
        int pos = 0;
        int max = obj[0].total;
  
        // Traverse the array of object
        for (int i = 0; i < size; i++) {
            if (obj[i].total > max) {
                max = obj[i].total;
                pos = i;
            }
        }
        return pos;
    }
  
    // Function to display the students
    // details
    void putdata()
    {
        cout << "Roll: " << roll
             << endl;
        cout << "Name: " << name
             << endl;
        cout << "Total Marks: "
             << total << endl;
    }
};
  
// Function that have array of objects
void arrayOfObjects()
{
    Student s[3], s1;
    int pos;
    for (int i = 0; i < 3; i++) {
        s[i].getdata();
    }
    pos = s1.pos(s, 3);
    cout << "Highest scoring Student"
         << " Details:" << endl;
    s[pos].putdata();
    return 0;
}
  
// Driver Code
int main()
{
    // Function Call
    arrayOfObejects();
  
    return 0;
}

Output:

Explanation:

  • In the main() function objects of the Student class are created:
    • Here, the first array of objects is s[3] and the other one is s1(a simple object).
    • In the for loop, 3 sets of user input have been taken, (i.e, it is where the user will be entering the name, roll, total marks, for 3 students sets).
    • Then passing the s[3] (array of an object which contains the sets of student details) and its size, through the s1 object in the pos(Student obj [], int size) member function.
  • The pos(Student obj [], int size) function, is returning the position of the object of the highest total marks scoring student set, i.e, (0, 1or 2 index position of s[3] object array), which is stored in pos = s1.pos(s, 3).
  • Display part: For calling the display function, S[pos].putdata() is used.
    • The putdata() function is displaying the object details of the student class.
    • Here, pos is sent (which stores the index position of the highest student set object) in s, to display the highest total marks scored student details.
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :