Schwierigkeiten mit QList

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
marcel87
Beiträge: 31
Registriert: 31. März 2013 20:25

Schwierigkeiten mit QList

Beitrag von marcel87 »

Hallo!

Ich möchte mehrere Instanzen einer Klasse in einer QList speichern. Meine Klasse sieht zunächst so aus:

Code: Alles auswählen

class Gegenstand
{
public:

    void Gegenstand::Herstellung(long int Zeit_Herstellung)//die Zeit wird mittels Zeitstempel ermittelt und in Sekunden angegeben 
    {
        Herstellungszeit = Zeit_Herstellung;
    }


    void Auslieferung(long int Zeit_Auslieferung)
    {
        Liegezeit = Zeit_Auslieferung - Zeit_Herstellung;
    }
};
(Später wird die Klasse um andere Member ergänzt.)

So schaffe ich Instanzen und speichere diese in einer QList:

Code: Alles auswählen

    Gegenstand* neuer_Gegenstand = new Gegenstand();// Die Klasse Gegenstand

    QList<Gegenstand*> meineListe;// Die QList mit dem Typ Gegenstand

    QList<Gegenstand*>::iterator Iter; // Iterator definieren



    for(int i=0; i<4; i++)
    {
        time_t now; //Zeitstempel
        time(&now);

       Gegenstand* neuer_Gegenstand = new Gegenstand();// Instanzierung

       Sleep(1000); //Hier soll eine Pause von 1 Sekunde entstehen!

       neuer_Gegenstand->Herstellung(now);//Hier schreibe ich den Zeitstempel rein

       meineListe.push_back(neuer_Gegenstand);// Die Instanzen werden in die Liste eingeschoben

    }
Mir ist bewusst, dass es unsauber geschrieben ist, aber ich komme nicht weiter. Ich möchte nun z.B. auf das 2. Element(Instanz) in der QList zugreifen und z.B. die Herstellungszeit abfragen (oder neu belegen). Aber ich weiß nicht wie. Hat vielleicht jemand eine Idee oder kennt jemand eine Seite die solch ein Problem behandelt?

Allgemeine Infos: Ich arbeite mit QT 5.0.1 und nutze die Doku http://qt-project.org/
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Schwierigkeiten mit QList

Beitrag von Christian81 »

meineListe[2]->wieauchimmerDiFunktionHeisst()
Besser erstmal mit den C++ Grundlagen anfangen - ein C++-Buch hilft da ungemein. Eine Übersicht über die Qt Container gibt es hier: http://qt-project.org/doc/qt-5.0/qtcore/containers.html , über die STL-Container hier: http://www.cplusplus.com/reference/stl/
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Mr.Crank
Beiträge: 38
Registriert: 16. April 2013 15:21

Re: Schwierigkeiten mit QList

Beitrag von Mr.Crank »

Tach....

wie Christian schon erwähnt hat , hier fehlen die c++ Basics. Allerdings möchte ich dir nicht nur das
sagen, was du vermutlich selber weißt.

Ich weiß zwar nicht wie der Rest deiner Klasse / Programm aussieht , aber wenn du eine Zeit ausgeben möchtest
musst du nicht nur eine Funktion schreiben in der du die Zeit setzt kannst, sondern auch ein Speicherplatz für sie bereit halten.
Sprich in deiner Klasse brauchst du ein long int Herstellungszeit + Liegezeit.

Desweiteren würde ich eine get-Funktion schreiben , z.B.
long int getManufactureTime ( int listPosition)
{
long int helpTime;
helpTime=meineListe[listPosition]->Herstellungszeit;
return helpTime;
}

Es geht immer sauber und schneller , aber so kannst du klar nachvollziehen wie sich deine Werte ergeben bzw. wie du sie
beziehst.

Gruß MrCrank
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Re: Schwierigkeiten mit QList

Beitrag von Hulk2442 »

nur so aus Neugier:
Was soll die Vorschleife machen?
Kannst du sie mir Zeile für Zeile erklären?
Antworten