JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=44e3582d22c8b727fb3c0a5b9426ef5bMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

übergebener Zeiger einer Klasse im Destruktor deleten ?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 29.11.2007, 19:39    Titel: übergebener Zeiger einer Klasse im Destruktor deleten ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 29.11.2007, 20:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 30.11.2007, 10:17    Titel: Antworten mit Zitat

Du kannst die Sprites ja in einem Manager/Factory/MemoryManager/... erzeugen und verwalten lassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum