Cmmでは、定義されたクラス、生成されたインスタンスも単なるデータとして 扱っています。そのため、定義したクラスやインスタンスを下記のように別の 変数に代入することもできます。
class ExampleClass {
public x, y ;
method Init () { x = y = z = 0 ; }
}
var a, b, c ;
c = ExampleClass ; // (A)
x = new ExampleClass ;
y = new c ; // (B)
この場合、c はExampleClassのクラス定義を直接参照します(A)。代入時のコピー は発生しません。また、クラスを代入された変数 c を使って、インスタンス を生成することも可能です(B)。
また、インスタンスの代入も、インスタンスのデータエリアを参照するだけで、 配列のような代入時のコピーは発生しません。