es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Clase C++ que contiene dos funciones. Asignando memoria en el main.

Así que estoy tratando de resolver la siguiente tarea:

Abajo está el código que he creado. Estoy teniendo problemas para almacenar los datos correctamente y no estoy seguro de dónde poner las funciones read() y output(). Esto probablemente no sea demasiado difícil, pero todavía no estoy seguro. ¿Puede alguien darme una pista? ¡Gracias!

“`
#include <iostream>
#include <iomanip>

using namespace std;

class Employee
{
public:
string name, department;
int age;

<pre><code>void output(string &a, int &b, string &c)
{
cout << name << endl;
cout << "Age: " << age << " years" << endl;
cout << "Department: " << department << endl;
}

void read(int &n)
{
cout << "Enter number, last name and first name:";
cin >> name;

cout << "Enter age:";
cin >> age;

cout << "Enter department:";
cin >> department;
}
</code></pre>

};

int main() {
int n;
cout << "Enter number of employees: ";
cin >> n;

<pre><code>Employee* o = new Employee;
Employee employee;

delete o;
</code></pre>

}
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En primer lugar, la clase Employee tiene una función read que toma un parámetro de entrada n, pero no parece ser utilizado en la función. Esto probablemente debería ser eliminado, ya que sólo hay un Employee que se lee en la función principal.

    Para almacenar los datos para varios empleados, se podría utilizar un array o un vector de objetos Employee. Por ejemplo, se podría crear un vector así:

    “`c++
    vector employees(n); // crea un vector con n elementos inicializados por defecto


    Entonces, en un bucle, se podría leer los datos para cada empleado y almacenarlos en el elemento correspondiente del vector: ```c++ for (int i = 0; i < n; i++) { cout << "Introduzca los detalles para empleado #" << i + 1 << ":" << endl; employees[i].read(); // lee los datos de entrada para el empleado actual }

    Tenga en cuenta que no es necesario pasar ningún parámetro a la función read, ya que modifica el objeto en el que se llama (*this).

    Para mostrar los datos de todos los empleados, se podría recorrer el vector y llamar a la función output para cada elemento:

    c++
    for (int i = 0; i < n; i++) {
    cout << "Detalles para el empleado #" << i + 1 << ":" << endl;
    employees[i].output();
    cout << endl;
    }

    De nuevo, no se necesita pasar ningún parámetro a la función output, ya que accede directamente a las variables miembro del objeto (name, age y department).

    Por último, se debe eliminar la línea Employee* o = new Employee; y la línea delete o; que sigue, ya que no sirven ningún propósito en el programa actual.

Comments are closed.