Next: , Previous: , Up: The objects.fs model   [Contents][Index]


6.24.3.4 Creating objects

heap-new ( ... class – object ) を使用するとヒープ上にクラスのオブジェクトを作成して初期化することができ、 dict-new ( ... class – object ) を使用するとディクショナリ内(allot による割り当て)にクラスのオブジェクトを作成して初期化することができます。 どちらのワードも当該クラス classconstruct を呼び出し、 当該クラス classconstruct のスタック効果(上記「...」の部分)で示されたスタック項目を消費します(訳注: 例えば 6.24.3.2 Basic ‘objects.fs’ Usage の例のように、 circleconstruct のスタック効果 n-radius が必要で、 50 circle heap-new constant my-circle としなければならない)。

オブジェクトに自分でメモリを割り当てたい場合は、 class-inst-size 2@ ( class – align size ) を使用してクラスのアライメント(alignment)とサイズを取得できます。 オブジェクト用のメモリを確保したら、 init-object ( ... class object – )でオブジェクトを初期化できます(訳注: class のためのデータ構造を object からに構築し、 その後そのオブジェクトに対して construct を実行します。 注意: 当該 classconstruct 用のスタック項目の指定も必要な事に注意)。