Array allokieren und alle Objekte benennen



  • Servus,

    ich habe einen Zeiger Patch* p und will nun ein Array von Patches anlegen. z.b. so:

    Patch* p = new Patch[100];
    

    Das Problem ist nur: Patch erbt von Object und Object braucht im Ctor einen String. Dh ich muss irgendwie die Patches im Array alle eindeutig benennen, zb so: "Patch1", "Patch2" etc. Wie könnte ich das machen?



  • Was ist der Sinn? Brauchst du das überhaupt? Ansonsten führe auch einen Konstruktor ein, der ohne Parameter auskommt.

    Object(const std::string& x = "")
    {
    }
    


  • Habs jetzt so gelöst:

    Patch::Patch() :
       Object( str("Patch%i", numPatches++) ) {	
    }
    

    numPatches ist eine statische Membervariable.

    Scheint zu funktionieren.



  • du musst nur aufpassen, wenn du objekte kopierst (oder funktione/ -saufrufe oder container), nicht das dannd ein zähler auch mit erhöht wird und dann hast du am ende 10000 objekte obwohl du nur 100 objekte erstellt hast und wolltest...


Anmelden zum Antworten