Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
cyby Mini JLI'ler
Alter: 35 Anmeldedatum: 25.08.2004 Beiträge: 12 Wohnort: Tauberischofsheim Medaillen: Keine
|
Verfasst am: 29.11.2007, 19:39 Titel: übergebener Zeiger einer Klasse im Destruktor deleten ? |
|
|
hallo,
es gibt ja die Möglichkeit eine Klasse mit einem Zeiger zu deklarieren
Code: | class CSprite
{
CSprite();
~CSprite();
int Create(char Filename[]);
};
CSprite *SpriteName = new CSprite();
SpriteName->Create("test.png");
|
kann man denn diesen übergebenen Zeiger im Destruktor der Klasse deleten ?
Der Sinn dahinter ist, das ich eine Klasse zum Laden von Sprites schreiben will auf Basis von Zeiger (wie im Beispiel gezeigt). Wenn man in einem Spiel aber ein paar hundert Sprites erstellt hat und diese alle einzeln mit delete löschen muss, wäre es sehr umständlich!
Ich möchte Zeiger verwenden, da sie sehr flexibler sind als die normale Deklaration von Klassen.
Thx4Help
MfG, cyby _________________ Wenn jemand Rechtschreibfehler findet oder Fachausdrücke falsch geschrieben sind, mir bitte per PN mitteilen! (Übung macht den Meister xD ) |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 29.11.2007, 20:23 Titel: |
|
|
nein, das was du willst geht so nicht. du kannst aber etwas ähnliches machen, wo auch zeiger in destruktoren deleted werden (im grunde da was du willst). Du solltest dir mal std::auto_ptr und ggf. in dem Zsh. auch RAII anschauen. Zu std::auto_ptr und anderen Smartpointern gibt es hier was in der tutorial-section, ansonsten solltest du bei google fragen. Zu deiner Idee: Das geht nicht weil durch delete() erst der Destruktor aufgerufen wird. Du kannst also nicht delete im Destruktor auf den this-Zeiger anwenden. |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 30.11.2007, 10:17 Titel: |
|
|
Du kannst die Sprites ja in einem Manager/Factory/MemoryManager/... erzeugen und verwalten lassen. |
|
Nach oben |
|
|
|