helz@gorilla.ecn.purdue.edu (Randall A Helzerman) (06/09/91)
Hey net.c++.wisepersons...
I have an application where it would be very convenient for a member
function to be able to do the equivelent of deleting the object it is
a member of, as shown in the following code:
-------cut-here------------------------------------------
#include <stdio.h>
class depressed{
int i;
public:
hara_kiri(){
printf("Goodbye Cruel World....BANG!!!\n");
delete this;
printf("thunk!\n");
}
};
depressed *b;
main(){
b=new depressed;
b->hara_kiri();
printf("Back in the main program.\n");
}
----cut-here------------------------------------------
Is this OK? I never reference any data from the object again--I
simple want the return from the member function hara_kiri() to go as
planned. Would it still be OK if hara_kiri(), instead of deleting the
object itself, called another function which deleted the object?
Thanks in advance for wadeing through the code.cadsi@ccad.uiowa.edu (CADSI) (06/10/91)
From article <1991Jun9.080138.2540@noose.ecn.purdue.edu>, by helz@gorilla.ecn.purdue.edu (Randall A Helzerman): > Hey net.c++.wisepersons... > I have an application where it would be very convenient for a member > function to be able to do the equivelent of deleting the object it is > a member of, as shown in the following code: > [ stuff deleted ] I use the WM_DESTROY messate in Windows code to do JUST this. It has worked for me (Borland C++) with no hitches. class classofstuff { member1 { do_some_stuff() ; delete this } . . } [source and other stuff deleted] |----------------------------------------------------------------------------| |Tom Hite | The views expressed by me | |Manager, Product development | are mine, not necessarily | |CADSI (Computer Aided Design Software Inc. | the views of CADSI. | |----------------------------------------------------------------------------|