Deleting an object

Maik Klein via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jan 18 05:47:00 PST 2016


I have also asked this question here 
https://stackoverflow.com/questions/34838742/weak-references-or-pointers

But I try to word it differently.

I have a game with GameObjects, a system manages those 
GameObjects. GameObjects can hold a pointer/reference to each 
other.

But at one point a GameObject dies and when it does it shouldn't 
be able to be accessed by other GameObjects nor should it be kept 
alive in memory.

How do I express this in D?

I have also looked at core.memory.GC

   auto foo = new Foo!int();
   auto foo2 = foo;
   GC.free(foo);

   if(foo != null)
     writeln(*foo);
   if(foo2 != null)
     writeln(*foo2);

But it seems that `GC.free` behaves like C++'s `delete` and 
doesn't actually null all the pointers.


More information about the Digitalmars-d-learn mailing list