構造体型のクラスを定義して、そのクラスの
インスタンス変数を宣言すれば、実装としては、
インスタンス変数の中に構造体が埋め込まれることになります。ここでいうものは、そのような自明なことではなくて、別段の構造体型
クラスを定義することなく、
インスタンス変数の定義として構造体を書き込む方法です。そのクラスのメソッドから呼ばれる
システムコールが引数として構造体を要求しており、そのために別段のクラスを宣言するまでもないようなときに利用できます。
やり方は簡単で、
インスタンス変数として構造体型を宣言する"68k_record"の後にその構造体の名前を書いてから"{"を始めればよいだけです。
:CLASS MyClass super{ OBJECT }
VAR IVAR1
68k_record MyRecord
{
VAR member1
INT member2
VAR member3
}
VAR IVAR2
.........
メソッドの中では、構造体のメンバ一つ一つに
インスタンス変数としてメッセージを送ることができます。また"MyRecord"と書くことによって、member1からmember3で構成された構造体のポインタを得ることができます。
インスタンスへ変数の全体を構造体にして、入れ子にすることもできます。
:CLASS MyClass2 super{ OBJECT }
record
{
VAR IVAR1
INT IVAR2
68k_record MyStruct
{
VAR member1
VAR member2
VAR member3
}
VAR IVAR3
}
.......
関連項目:
最終更新:2018年12月22日 19:09