delete this?
-
Kannste mal den Sinn davon nennen ?
Devil
[ Dieser Beitrag wurde am 23.06.2003 um 20:18 Uhr von devil81 editiert. ]
-
Devil: Wenn man keine Ahnung hat, einfach mal den Mund halten.
-
Original erstellt von <CM>:
Devil: Wenn man keine Ahnung hat, einfach mal den Mund halten.sehr Lustig, der MSVC kompilierts zwar, aber beim ausführen hängt sich die Exe auf.
bzw. Die Debug hängt sich auf.
In der Release gehts...Devil
-
in diesem beitrag wurde ein link gepostet. wie wäre es, wenn du dir den erstmal durchliest? es sind da nämlich 3 bedingungen aufgeführt, die erfüllt sein müssen, damit es klappt.
-
Tja, wenn ich den Link öffnen könnte.
Aber mit Mozilla komm ich da leider net drauf...Devil
-
Ist durchaus praktisch, wenn sich Thread-Klassen selbst löschen sollen (asynchron) oder nicht-modale Dialogklassen... und es geht im VC sowohl als Debug als auch Release.
Darfst halt nach dem delete this nicht mehr auf Member zugreifen, die einen this-Zeiger benötigen... also keine Operationen, keine Daten.
-
Jo, ist wirklich ganz niedlich/praktisch.. hab das auch schon für meinen eignen Thread-Wrapper benutzt.
(o:
-junix
-
ich hab das auch mal benutzt für ne fensterklasse. bei WM_DESTROY dann delete this aufrufen. objekt muss natürlich auf dem heap liegen.
-
*amkopfkratz* konnte man das Erstellen auf dem Heap nicht irgendwie erzwingen? protected machen des Konstruktors oder was war das? *grübel*
-junix
-
Original erstellt von junix:
*amkopfkratz* konnte man das Erstellen auf dem Heap nicht irgendwie erzwingen? protected machen des Konstruktors oder was war das? *grübel*
-junixnee, weg damit. private.
und ne static create(...), die new benutzt und nen zeiger gibt.
-
-
Ah, jo, genau (o: danke, Volkard.
-junix
-
Hallo,
oder alternativ einfach den Destruktor private machen. Ist so ein n vs. 1 Ding. Also statt n-Konstruktoren zu verstecken, reicht es auch 1 Destruktor zu verbergenIst natürlich nur ratsam, wenn die Objekte ausschließlich über eine destroy-Methode zerstört werden sollen.
-
@Hume: Wenn die Methode delete this; macht, wird dann keine Destruktor aufgerufen?
-
Original erstellt von HumeSikkins:
Also statt n-Konstruktoren zu verstecken, reicht es auch 1 Destruktor zu verbergenvestecken, verbergen? das wurde mir jetzt nicht klar. ich schug vor, die konstruktoren private zu machen. das war dann wohl verstecken. wie verbirgst du nur einen mit dem gleichen effekt?
edit: ups, verlesen. da steht ja DEstruktor. dann ists klar. kann auch gehen.
[ Dieser Beitrag wurde am 23.06.2003 um 22:34 Uhr von volkard editiert. ]
-
Mir ist grad eingefallen, dass Destruktor privat machen gar kein Problem nicht is.
-
is ja gut
-
vestecken, verbergen?
Das war der klägliche Versuch alternative Beschreibungen für "private machen" zu finden. Denn dreimal "private machen" hätte sich irgendwie doof angehört. Naja, hat mal wieder nicht funktioniert
Wenn die Methode delete this; macht, wird dann keine Destruktor aufgerufen?
Sicher wird der Dtor aufgerufen. Und da eine Methode zugriff auf die private-Teile ihrer Klasse hat, gibt's auch kein Problem.
Mir ist grad eingefallen, dass Destruktor privat machen gar kein Problem nicht is.
Wow? "It ain't no cat can't get in no coop". Kannst du mir mal die Bedeutung deines Satzes erklären?
[ Dieser Beitrag wurde am 24.06.2003 um 07:54 Uhr von HumeSikkins editiert. ]