Klasa C++, zawierający dwie funkcje. Alokacja pamięci w zasadzie

0

Pytanie

dlatego staram się rozwiązać następujące zadanie:

Task

Poniżej znajduje się kod, który wymyśliłem. Mam problemy z prawidłowym przechowywaniem danych, i nie jestem pewien gdzie umieścić funkcję odczytu() i wyjściowe (). Prawdopodobnie to nie jest zbyt trudne, ale nadal nie jestem pewien. Może ktoś może dać mi jakieś wskazówki? Dziękuję!

 #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

Najlepsza odpowiedź

0

Bez uruchamiania swojego kodu to wygląda dość blisko do aktywnego rozwiązywania Można zachować dane w polach instancji klasy Employee

można przechowywać gdzieś w kupie. I dostęp za pomocą wskaźnika o

niektóre propozycje:

Nie ma potrzeby, aby przesłać coś w funkcję odczytu, ona odczytuje dane o jednym pracowniku na wyzwanie.

Jeśli chcesz utworzyć kilku pracowników, trzeba utworzyć wektor do ich utrzymania, a następnie pętla for, która odbywa się n razy, a wewnątrz tej pętli for utwórz nowego pracownika, należy wywołać go z funkcji odczytu i wydruku, a następnie dodaj je w wektor (w przeciwnym razie stracisz wskaźniki i powstanie wyciek pamięci).

Użyj o->read() opis: dla wskaźnika i połączenia go z funkcji odczytu.

Pola pracownika najlepiej zrobić prywatnymi zmiennymi członkowskimi. Czyli imię i nazwisko,wydział, wiek. To nadal będzie скомпилировано i działa, ale lepiej zrobić rzeczy prywatnych, jeśli tylko nie muszą być publicznie dostępne.

Poza tym, nie sądzę, że potrzebujesz ostatni wiersz, już stworzyli nowego pracownika i indeks na niego w powyższym wierszu.

w końcu, gdy przejdziesz do usunięcia, po prostu powtórz swój wektor pracowników i usuń każdego z nich.

W tej chwili mam mało czasu, ale postaram się wrócić i dodać kilka przykładów kodu później, jeśli jest to konieczne.

2021-11-24 20:52:16

W innych językach

Ta strona jest w innych językach

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