📌  相关文章
📜  在C++中将对象数组作为参数传递

📅  最后修改于: 2021-05-19 17:35:11             🧑  作者: Mango

对象数组这是一个数组,其元素属于类型。可以将其声明为任何数据类型的数组

句法:

下面是C++程序,它通过计算3个学生中的最高分数来说明对象的阵列:

C++
// C++ program to illustrate the
// passing the array of objects
// to function parameter
#include 
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;
}


输出:

说明

  • 在Student ()类的main()函数对象中创建:
    • 在这里,对象的第一个数组是s [3] ,另一个是s1 (一个简单的对象)。
    • 在for循环中,已进行了3组用户输入(即,用户将在其中输入3组学生的姓名,名次,总分)。
    • 然后,通过pos(Student obj [],int size)成员函数的s1对象传递s [3] (包含学生详细信息集的对象的数组)及其大小。
  • pos(Student obj [],int size)函数将返回得分最高的学生组的对象位置,即学生集(即s [3]对象数组的0、1或2索引位置),该位置已存储在pos = s1.pos(s,3)中
  • 显示部分:为了调用显示函数,使用S [pos] .putdata()
    • putdata() 函数显示学生班级的对象详细信息。
    • 在这里, pos被发送(存储最高学生设置对象的索引位置)到s中,以显示得分最高的学生详细信息总得分。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”