Beliebig viele Objekte anlegen

  • C++

  • fexs
  • 4595 Aufrufe 2 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Beliebig viele Objekte anlegen

    Hallo,
    ich versuche gerade ein Programm zu schreiben das beliebig viele Personen erfassen kann.

    Ich habe eine Klasse namens Personen. Der Konstruktor sieht z.B. so aus:

    Personen::Personen(string name, int alter, double gewicht)...

    In der main() kann ich es ja dann so aufrufen:
    Personen person ("einName", 50, 80.5);

    Nun will ich aber in einer Schleife beliebig viele Personen abspeichern können. Ich habe da an Vektoren gedacht aber wie genau es funktioniert bekomme ich nicht raus.

    Das hier funktioniert schon mal nicht :D :
    vector<Personen> person;
    person.push_back("einName", 50, 80.5);

    Da zu dem Programm eigentlich noch mehr dazugehört müssen die Personen aber schon in einer Klasse abgelegt werden.

    Kann mir da jemand helfen?
    Bis dann :)
    [COLOR="DarkRed"][SIZE="3"]Godspeed[/SIZE][/color] on [COLOR="DarkRed"][SIZE="3"]Devils[/SIZE][/color] Thunder
  • Die push_back Funktion deines Vektors erwartet ein Personen-Objekt, du uebergibst allerdings einen String, einen Integer und ein Double.

    Vielleicht hilft dir das hier weiter:

    Quellcode

    1. vector<Personen> vp;
    2. for(int i = 0; i<=100; ++i) {
    3. Personen p("test", i, i*5.2);
    4. vp.push_back(p);
    5. //alternativ: vp.push_back(Person("test", i, i*5.2));
    6. }


    Als Beweis, dass diese Personen auch wirklich im Vektor gespeichert worden sind:

    Quellcode

    1. for(vector<Person>::iterator it = vp.begin(); it != vp.end(); ++it) {
    2. cout << it->name << ":" << it->alter << ":" << it->gewicht << endl;
    3. // oder falls du eine print funktion besitzt:
    4. it->print();
    5. }