7.2. インスタンスのクラスの変更
関数change-class
は、 インスタンスのクラスを現在のクラスCfrom
から違うクラスCto
へ変更する際に使用します。 この関数はインスタンスの構造を変化させて、 クラスCto
の定義へ適用させるような変更を行います。
インスタンスのクラスの変更は、 スロットへの追加と削除が行われるでしょう。 インスタンスのクラスの変更は、関数eq
により定義されたものとの同一性を変更しません。
関数change-class
がインスタンスに対して実行されたとき、 2つの手順により更新が行われます。 最初の手順は、新しい局所スロットの追加と、 新しいバージョンには定義されない局所スロットの削除によるインスタンスの構造の変更です。 二番目の手順は、新しく追加された局所スロットの初期化と、 他にユーザーが定義したアクションの実行です。 これら2つの手順は、次に示す2つの章によって定義されています。