Pasar una array de objetos como parámetro en C++

Array of Objects : Es un array cuyos elementos son del tipo clase . Se puede declarar como una array de cualquier tipo de datos .

Sintaxis:

nombre_clase nombre_arreglo [tamaño];

A continuación se muestra el programa C++ para ilustrar la array de objetos calculando las calificaciones más altas entre 3 estudiantes:

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();
}
 
// Driver Code
int main()
{
    // Function Call
    arrayOfObjects();
 
    return 0;
}

Producción:

Explicación :

  • En la función main() se crean objetos de la clase Student:
    • Aquí, la primera array de objetos es s[3] y la otra es s1 (un objeto simple).
    • En el bucle for, se han tomado 3 conjuntos de entrada del usuario (es decir, es donde el usuario ingresará el nombre, la tirada, las calificaciones totales, para conjuntos de 3 estudiantes).
    • Luego, pase el s[3] (array de un objeto que contiene los conjuntos de detalles del estudiante) y su tamaño, a través del objeto s1 en la función miembro pos(Student obj [], int size) .
  • La función pos(Student obj [], int size) devuelve la posición del objeto del conjunto de estudiantes con la puntuación total más alta, es decir, (posición de índice 0, 1 o 2 de la array de objetos s[3] ), que se almacena en pos = s1.pos(s, 3) .
  • Parte de visualización: para llamar a la función de visualización, se utiliza S[pos].putdata() .
    • losponer datos()La función muestra los detalles del objeto de la clase de estudiante.
    • Aquí, se envía pos (que almacena la posición de índice del objeto de conjunto de estudiantes más alto) en s , para mostrar los detalles del estudiante con las calificaciones totales más altas.

Complejidad temporal: O(n)
Espacio auxiliar: O(n)

Publicación traducida automáticamente

Artículo escrito por debojyotidas9294 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *