Classe C++ qui contient deux fonctions. L'allocation de mémoire dans les principales

0

La question

donc, je suis en train de résoudre la tâche suivante:

Task

Ci-dessous le code que j'ai trouvé. Je vais avoir de la difficulté à stocker les données correctement et je ne sais pas où mettre le lire() et de sortie() fonction. Ce n'est probablement pas trop difficile, mais je ne suis toujours pas sûr. Quelqu'un peut-il peut-être me donner un indice? Merci!!!!

 #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

La meilleure réponse

0

Sans l'exécution de votre code, il semble assez proche d'une solution de travail Vous souhaitez conserver les données dans les champs de l'instance de votre classe d'Employés

qui vous sont stocker quelque part sur le tas. Et l'accès à l'aide du pointeur o

quelques suggestions:

Il n'est pas nécessaire de passer quelque chose dans la fonction de lecture, c'est la lecture de l'un des employés de détails par appel.

Si vous souhaitez créer plusieurs employés alors vous voulez créer vecteur de les tenir dans, puis une boucle qui s'exécute n fois et à l'intérieur de cette boucle pour créer un nouvel employé appeler leur lecture et les fonctions de sortie et les ajouter au vecteur (sinon vous perdrez votre pointeurs et avoir une fuite de mémoire).

Utiliser o->read() pour déréférencer le pointeur de la souris et appeler sa fonction de lecture.

Les champs de vos employés sont mieux faits des variables de membre privé. I. E nom,département, l'âge. Cela va compiler et exécuter, mais il est la meilleure conception pour rendre les choses privées, sauf si ils ont besoin d'être public.

En outre, je ne pense pas que vous avez besoin de la dernière ligne, vous avez déjà créé un nouvel employé et un pointeur sur la ligne ci-dessus.

enfin, quand vous allez à supprimer viens de parcourir votre vecteur de salariés et de supprimer chacun d'eux.

À court de temps en ce moment, mais je vais essayer de revenir et ajouter des exemples de code plus tard si vous avez besoin d'em.

2021-11-24 20:52:16

Dans d'autres langues

Cette page est dans d'autres langues

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