heap-new
( ... class – object )
を使用するとヒープ上にクラスのオブジェクトを作成して初期化することができ、 dict-new
( ... class – object
) を使用するとディクショナリー内(allot
による割り当て)にクラスのオブジェクトを作成して初期化することができます。
どちらのワードも当該クラス class の construct
を呼び出し、 当該クラス class の
construct
のスタック効果(上記「...」の部分)で示されたスタック項目を消費します(訳注: 例えば 6.24.3.2 Basic
‘objects.fs’ Usage の例のように、 circle
の construct
のスタック効果 n-radius
が必要で、 50 circle heap-new constant my-circle
としなければならない)。
オブジェクトに自分でメモリーを割り当てたい場合は、 class-inst-size 2@
( class – align size )
を使用してクラスのアライメント(alignment)とサイズを取得できます。 オブジェクト用のメモリーを確保したら、
init-object
( ... class object – )でオブジェクトを初期化できます(訳注: class
のためのデータ構造を object からに構築し、 その後そのオブジェクトに対して construct
を実行します。 注意:
当該 class の construct
用のスタック項目の指定も必要な事に注意)。