Clase de C++ que contiene dos funciones. La asignación de memoria principal

0

Pregunta

así que estoy tratando de resolver las siguientes tareas:

Task

A continuación se muestra el código que he venido para arriba con. Estoy teniendo problemas para almacenar los datos correctamente y no estoy seguro de donde poner el read() y de salida() función. Esto probablemente no es demasiado difícil, pero todavía no estoy seguro. Puede tal vez alguien me da una pista? Gracias!

 #include <iostream>
#include <iomanip>

using namespace std;

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

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

int main() {
    int n;
    cout << "Enter number of employees: ";
    cin >> n;
    Employee* o = new Employee;
    Employee employee;



   delete o;
}
c++ c++14 class dynamic
2021-11-23 19:11:33
1

Mejor respuesta

0

Sin ejecutando el código, parece bastante cerca de una solución de trabajo Usted está guardando los datos en los campos de la instancia de la clase Employee

que usted almacena en algún lugar en el montón. Y a acceder con el puntero o

algunas sugerencias:

No hay necesidad de pasar de nada a la función de lectura, la lectura en uno de los detalles de los empleados por llamada.

Si desea crear varios empleados entonces usted desea crear vectores para mantenerlos en, a continuación, un bucle que se ejecuta n veces y dentro de ese bucle para crear un nuevo empleado llamar a su lectura y las funciones de salida y agregarlos al vector (de lo contrario perderá su punteros y tienen una pérdida de memoria).

El uso de o->read() para eliminar el puntero y llame a su función de lectura.

Los campos de su empleado, es mejor hacer las variables miembro privadas. I. E nombre,departamento, edad. Esto todavía compilar y ejecutar, pero no es el mejor diseño para hacer las cosas en privado, a menos que tengan una necesidad de ser público.

Además creo que no se necesita la última línea, ya se ha creado un nuevo empleado y un puntero en la línea de arriba.

por último, cuando usted vaya a borrar sólo iterar a través de su vector de empleados y eliminar cada uno.

Con poco tiempo en este momento, pero voy a tratar de círculo atrás y añadir algunos ejemplos de código más tarde si es necesario em.

2021-11-24 20:52:16

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................