std::list und temporäre Objekte



  • Ich bastel grade an nem Framework für ein Strategiespiel. Jetzt schreibe ich gerade die Klasse, die den Spieler repräsentiert. Ich habe eine private
    std::list<SmartDecoState<Player*>* > Players:
    und die public Funktion:

    template<class T> void AddnewPlayer()
    	{
    		Players.push_back(&SmartDecoState<Player*>(new T));
    	}
    

    Ich benutze deshalb ein Template, weil man von Player Subklassen ableitet, um eigene Spielertypen zu erstellen (hört sich merkwürdig an, kanns nicht besser erklären). Jetzt würde ich sagen, dass das SmartDecoState (halt ein Smartpointer mit zusätzlichen Features , nämlich den Patterns Decorator und State) am Ende der Funktion wieder gelöscht wird (is ja nur ein tempörares Objekt). Das wäre blöd, deshalb frage ich sicherheitshalber nochmal.

    thx

    Glamdring



  • Richtig, es wird gelöscht.


Anmelden zum Antworten