KLasse in Array speichern



  • HI zusammen,

    habe mal eine Frage.
    Habe folgende Struktur für einen Eintrag:

    String test1;
    Strin test2;
    String Test3;
    String name;
    int Betrag;

    Jetzt kommen ja viele Einträge mit dieser gleichen Struktur und ich möchte diese immer gemeinsam absoeichern.

    Habe mir folgendes gedacht:

    ich nehme eine klasse, instanziere diese und schreibe immer die oberen Werte in diese rein. Dann speichere ich die ganze Klasse in dem Array ab und kann dasnn perfekt immer auf alle zugreifen.

    Z.B Klasse test = Array[0];
    Test->gettest1();
    ...

    In c# habe ich es immer so gemacht und da ist es auch super gegangen!
    Aber muss das Projekt jetzt in C++ durchführen!

    Realisiert man das auch so, oder gibt es da andere Möglichkeite!

    Gibt es ArrayLists???

    Danke Bench



  • Hallo

    ArrayList ist ein kein guter Begriff, denn Array und List beziehen sich auf zwei verschiedene Prinzipien der Elementverwaltung.

    Aber ja in C++ gibt es sehr wohl auch Arrays. Wenn die Größe immer gleich bleibt nimmst du ein statisches C-Array, wenn sich die Größe zur Laufzeit ändern kann einen std::vector. Weiteres kannst du in den üblichen Tutorials zu C++ nachlesen.

    bis bald
    akari



  • Hi,

    ok erstmal danke!
    Gibt es dann somit die Moglichkeit:

    std::vector<Klasse> klassenvektor;
    klassenvektor.push_back(new Klasse("Test1","Test2",Test3));
    

    Dann halt Später iwder Holen:

    Klasse klasse = klassenvektor[2];
    dann halt die klasse benutzen mit z.B:

    AnsiString test = klasse->getTest1();
    

    In der KLasse sind halt dann die bestimmten Funktionen Drinnen, welche ich brauche und selber reinschreibe!!

    Aber geht das an sich so wie oben beschrieben!?

    Oder hast su ene andere Idee?

    Danke Bench



  • eher so

    std::vector<Klasse> klassenvektor;
    klassenvektor.push_back(Klasse("Test1","Test2",Test3));
    

    Ein new ist hier nicht erforderlich, es werden schließlich keine Zeiger gespeichert.
    Der Zugriff erfolgt dann ganz normal.

    AnsiString test = klassenvektor[i].getTest1();
    

    Im Magazin hier gibt es einen Artikel über vector und co.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html



  • HI!

    ok cool danke!
    probier ich gleich mal aus!!

    danke Bench



  • Hi,

    klappt wunderbar!!

    Aber jetzt möchte ich die Inhalte des vektors in eine Textdatei schreiben!!!

    wie kann ich das realisieren, so dass ich beim einlesen der Textdatei gleich wieder meine Werte in den Klassenvektor schreiben kann?

    Danke Bench



  • Hallo

    Dann lies dir die Grundlagen der Dateibehandlung in C++ durch. Fang zum Beispiel in der FAQ des C++ Forums an, im Thread "Dateien und Ströme".

    bis bald
    akari


Anmelden zum Antworten