Instanz Global machen



  • Hi Leute, ich arbeite zurzeit an einer Art Leveleditor. Ich möchte mehrere Instanzen der Klasse "CObject" erstellen. Spieler, Enemy und Wall sind 3 Instanzen, die Global erstellt werden. Jetzt hab ich aber das Problem, dass ich mehrere Instanzen erstellen möchte. Wenn ich jetzt aber innerhalb diesen Beispiels:

    if(some == true)
    {
    CObject Wand;
    }
    

    erstelle, ist, wie ihr wisst, die Instanz Wand nicht mehr verfügbar, wenn der Block beendet ist (}).

    Wie kann ich jetzt innerhalb eines Codeblockes eine Instanz Global erstellen, bzw. gibt es eine bessere Lösung?



  • mehrere Instanzen = eine undefinierte Zahl/dynamische Anzahl von instanzen?
    Dann mach doch einen (globalen) Vektor aus CObject-Pointern und erstelle ein neues Objekt mit new.



  • Vektoren? Was soll mir das bringen? Soweit wie ich die Vektoren von der STL kenne machen die dabei keinen Sinn. Erklär ma bitte genauer was du meinst.


  • Mod

    Indem man Zeiger verwendet und das Objekt mit new erzeugt. Die Frage bleibt dennoch, wo soll dieses Objekt denn "leben"/"existieren"?



  • Ich habe einen Hauptcode und die Instanz soll über alle Messages / ... existieren. Z.B. WM_PAINT, WM_MOUSEMOVE, usw. außerdem über die ganzen Callbacks

    |-> über den ganzen Code.

    Meinst du sowas?

    CObject *PObjekt = NULL;
    PObjekt = new CObject;
    
    //ende
    
    delete PObjekt;
    PObjekt = NULL;
    

Anmelden zum Antworten