January 29, 2004 Call delete from destructor ? | ||||
|---|---|---|---|---|
| ||||
Why when I call delete from destructor of class B, my program is stopped and don't answer. It's a bug or feature ? (Compiled with dmd 0.79, 0.78 under linux) Program output :
------------
B()
A()
~B()
----------
// Program listing
class A
{
this() { printf("A()\n"); }
~this() { printf("~A()\n"); }
}
class B
{
this() {
printf("B()\n");
m_a = new A;
}
~this() {
printf("~B()\n");
delete m_a; // Error ?!!!
}
A m_a;
}
int main(char[][] args)
{
B b = new B;
delete b;
return 0;
}
| ||||
January 29, 2004 Re: Call delete from destructor ? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Silencer | Silencer wrote: >Why when I call delete from destructor of class B, my program is stopped and >don't answer. It's a bug or feature ? (Compiled with dmd 0.79, 0.78 under linux) >Program output : >------------ >B() >A() >~B() >---------- >// Program listing >class A >{ >this() { printf("A()\n"); } >~this() { printf("~A()\n"); } >} > >class B >{ >this() { >printf("B()\n"); >m_a = new A; >} >~this() { >printf("~B()\n"); >delete m_a; // Error ?!!! >} A m_a; >} > >int main(char[][] args) >{ >B b = new B; >delete b; >return 0; >} > > > > Must be a Linux bug. Work for me in winXP .79. B() A() ~B() ~A() -- -Anderson: http://badmama.com.au/~anderson/ | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply