|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 05.01.2004, 12:38 Titel: delete Kind |
|
|
Also, noch mal ne Frage zum Dynamischen Knoten erstellungsdingsbumsteilda:
Wie gehabt, eine Knotenstruktur:
Code: |
struct s;
typedef s Knoten;
struct s
{
Knoten *l,r*;//Linker und Rechter Kindast
};
|
Dann erstelle ich dynamisch ein paar Knoten, wobei jeweils der Pointer der Ast des Mutterzweigs ist
Code: |
Knoten *start;
start = new Knoten;
start->l = new Knoten;
start->r = new knoten;
|
So, jetzt die Frage:
Wenn ich jetzt start lösche(delete), werden dann auch seine Kindäste mitgelöscht? Denn es ist dann ja wiee ein aufruf delete start->l;delete start->r;delete start; Ja? ja!
also müsste man mit delete start auch die Knoten start->l und start->r löschen?
Und wenn ja, gilt dass dann auch für eventuelle Enkelknoten? Oder entstehen da dann Memory Leaks?
Danke |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 05.01.2004, 12:42 Titel: |
|
|
Automatisch geht es nicht. Aber so:
Code: |
class Knoten
{
public:
Knoten();
virtual ~Knoten();
void Alloc(void);
protected:
Knoten *l,r*;//Linker und Rechter Kindast
};
Knoten::Knoten() : l(0), r(0)
{
}
Knoten::~Knoten()
{
delete l;
delete r;
}
void Knoten::Alloc()
{
l = new Knoten;
r = new Knoten;
}
|
Christian - hoffe ich habe nix vergessen |
|
Nach oben |
|
|
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 05.01.2004, 13:16 Titel: |
|
|
Ok, das wollte ich wissen, ob ich für jedes einen Destruktor brauche, oder ob es anderst geht. Dank dir. |
|
Nach oben |
|
|
|
|
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
|