Code: Alles auswählen
#define DEF_SINGLETON( NAME ) \
public: \
static NAME* Get_Instance() \
{ \
static NAME _instance;\
return &_instance;\
}\
private:\
NAME() {}; \
NAME( const NAME& ); \
NAME & operator = (const NAME &);
Wenn ich nun den klasseneigenen Destruktor (in dem ich alle Pointer etc lösche) aufrufe, stürzt das Programm ab (klar, weil ich nicht vom Stack löschen kann).
Meine Vermutung wäre, dass der Stack nach dem Programmablauf geleert wird und dementsprechend auch der Speicher. Dementsprechend müsste ich mich nicht um Deallokierung des Speichers kümmern. Ist das soweit richtig? kann ich mir bei einer Sprache wie C++ kaum vorstellen.
Als Notlösung könnte ich den Singleton auf dem Heap anlegen, was ich aber nicht möchte, weil ich die Klasse von Anfang bis Ende der Main-Methode brauche.
Daher die Frage: Wie werde ich den allokierten Speicher meiner Singletonklasse los? =D