自己参照型の作成方法について。

背景

自己参照型では自身のフィールドが自身の他のフィールドを参照する。

自己参照型の利点

コードがシンプルになる事がある。

例えば、親型と子型とがあり、子型から親型が参照される場合、それらをまとめた自己参照型が作れる。これがあると、親型と子型をまとめて作成して持ちまわれる。一方、これができないと、まず親型の値から作成して配置、次にそれを参照する子型の値を作成、そして両者それぞれを持ちまわる必要がある。

自己参照型の欠点

値の移動があると、内部の自己参照が壊れてしまう。

これは以下のようなメモリ配置を想像すると分かりやすい。