Tworzenie obiektu w programie

0

Cześć. Mam pewien problem a raczej nie wiem jak się zabrać do napisania prostego programu.
Mam klasę Człowiek

class Czlowiek
{
    public :
    int numer;
    string imie;
    string nazwisko;
    string zawod;
    int wiek;

    void stworz()
    {
        cout<<"Podaj numer: ";
        cin>>numer;
        cout<<"Podaj imie: ";
        cin>>imie;
        cout<<"Podaj nazwisko: ";
        cin>>nazwisko;
        cout<<"Podaj zawod: ";
        cin>>zawod;
        cout<<"Podaj wiek: ";
        cin>>wiek;

    }

    void pokazdane()
    {
        cout<<numer<<" "<<imie<<" "<<nazwisko<<" "<<wiek<<" "<<zawod;
    }
};

Teraz w mainie chciałbym zapisać aby w konsoli po wpisaniu stworz tworzył się nowy obiekt (może być ich bardzo dużo. Zależy od użytkownika programu). Następnie zostanie wykonany void stworz dla tego obiektu, który zapyta nas o dane osoby.
Później po wpisaniu w konsoli 1 lub innej liczby chciałbym aby zostały pokazane dane obiektu z numer = 1 (ewentualnie lista wszystkich, ponieważ dla mnie już to będzie duży krok do przodu).

Nie mam pojęcia jak się za to zabrać. Myślę i nie mogę wymyślić.

4

Taką metodę fabrykę rób jako funkcję wolną lub statyczną:


    static Czlowiek stworzZWejsciaStandardowego()
    {
        Czlowiek c;
        cout<<"Podaj numer: ";
        cin>>c.numer;
        cout<<"Podaj imie: ";
        cin>>c.imie;
        cout<<"Podaj nazwisko: ";
        cin>>c.nazwisko;
        cout<<"Podaj zawod: ";
        cin>>c.zawod;
        cout<<"Podaj wiek: ";
        cin>>c.wiek;
    }

Wtedy gdzie indziej wywołujesz po prostu:

int main()
{
    auto c = Czlowiek::stworzZWejsciaStandardowego();

}
0

Tylko czy to tworzy mi nowy obiekt za każdym razem jak to wpisze?

Jak później wywołać dane osoby 3,10 czy 15?

1

Zapewne chcesz tablicę. Jeśli nie wiesz z góry ile takich osób będzie to użyj std::vector

std::vector<Czlowiek> ludzie;
for(int i = 0; i < 3; i++){
    ludzie.push_back(Czlowiek::wczytajZStdin());
}

// ludzie[0] - pierwsza osoba
// ludzie[1] - druga osoba
// itd

1 użytkowników online, w tym zalogowanych: 0, gości: 1