destructor ~this() for static "members." doesn't seem to get called
Cesar Rabak
crabak at acm.org
Sun Feb 18 13:44:08 PST 2007
sclytrack escreveu:
> import std.stdio;
>
> class Testb
> {
> this()
> {
> writefln("testb constructor");
> }
> ~this()
> {
> writefln("testb destructor"); //Doesn't output on screen.
> }
> }
>
> class Testy
> {
> static Testb inner = null; //Destructor of Testb doesn't appear to be called.
>
> this()
> {
> writefln("testy constructor");
> inner = new Testb();
> }
> ~this()
> {
> writefln("testy destructor");
> }
> }
>
> int main()
> {
> writefln("gdc version 0.22");
> Testy t = new Testy();
> return 0;
> }
>
>
> It outputs the following lines:
> ./a.out
> gdc version 0.22
> testy constructor
> testb constructor
> testy destructor
>
>
> The destructor of testb doesn't get called,
> before the termination of the application,
> or that is at least my perception.
>
OK, is this supposed to be 'automatic' by the D language definition or a
responsibility of the programmer of including an explicit call to testb
destructor in the testy one?
More information about the D.gnu
mailing list