Speichern von erzeugten Objekten



  • Hallo,

    Ich habe gerade einen "Denk-Knoten",...
    Ich erzeuge dynamisch Komponenten und möchte mir aber merken wieviel bzw. die jeweilige Adresse süeichern um jederzeit daraufzuzugreifen,..

    Nur wie setze ich dies am besten um ?



  • Hallo,

    die Adresse mit nem Zeiger und die Anzahl mit nem Zähler, oder nich?



  • Warum nicht gleich std::vector ?

    std::vector< TEdit* > vEdits;
    
    TEdit * newEdit;
    
    for( int i = 0; i < 10; i++ )
    {
    newEdit = new TEdit( this );
    
    //...
    
    vEdits.puch_back( newEdit );
    }
    


  • Sorry für Doppelpost

    So greifst du dann später auf die Objekte zu:

    TEdit pEdit;
    
    for( int i = 0; i < vEdits.size(); i++)
    {
     pEdit = vEdits[i];
    
     // mach irgendwas
    
    }
    

    vEdits.size() ist in diesem Fall die Anzahl der Elemente.



  • Um
    - einen Fehler zu korrigieren (TEdit*)
    - eine Warnung zu vermeiden (Vergleich von signed und unsigned)
    - eine Funktion nur einmal aufrufen zu müssen (vector::size())
    folgender (angepasster) Code

    TEdit* pEdit; //pEdit sollte ein Pointer sein
    size_t size(vEdits.size()); //size() gibt size_t (unsigned int) zurück
    for( size_t i = 0; i < size; ++i)
    {
     pEdit = vEdits[i];
    
     // mach irgendwas
    
    }
    

Anmelden zum Antworten