>>698
まずGCの動作原理を理解しろって ttp://www.kmonos.net/alang/d/2.0/garbage.html
自分の理解では…
GCは、メモリの要る/要らないを、staticデータ/スタック/rootリスト からポインタをたどって調べる。
GCが動作したした時点で、たどる事の出来ないGC管理メモリは、全て破棄の対象になる。
(mallocなどのメモリは、GC管理メモリではないので対象外)
デストラクタの呼ばれる順序は、破棄対象であれば、親子順などの考慮は一切無く呼ばれる。(順序は予測不能)
つまり、デストラクタが呼ばれた時点で、メンバオブジェクトが既に破棄されている可能性がある。だから触ってはダメ。

メンバオブジェクトを、あらかじめGC.addRootでrootリストに登録しとけば、破棄されてないはずなので触れる。
不要になったら、GC.removeRootで登録解除 & 必要に応じてdelete。

GC.collect により任意の時点でGCを動作させる事が可能。(破棄対象のデストラクタが全部呼ばれる)