オブジェクト操作は (関数あるいはグローバル操作とは対照的に) 同じ戻りの型を持つ C 関数にマップされます。 操作に生成される最初の引数は、その操作が作動する特定のオブジェクトに対するポインターです。 me ポインターに続くのは、モデルに指定される操作の引数のオリジナル・リストです。
例えば、オブジェクト・タイプ B の print() という名前の操作に、次のようなプロトタイプが生成されます。
void B_print(B* const me);
B の宣言ファイルには関数プロトタイプが生成されます。唯一の引数は、me と呼ばれる、タイプが B のオブジェクトへのポインターです。
モデルの B の print() 操作に対する実装に以下の行を入力してください。
char *str;
str = "This is B";
printf("%s¥n", str);
実装ファイルの print() の本体に次の行が追加されます。
void B_print(B* const me) {
NOTIFY_OPERATION(me, NULL, B, print, print(), 0,
print_SERIALIZE);
{
/*#[ operation print() */
char *str;
str = "This is B";
printf("%s¥n", str);
/*#]*/
}
}
/*#[ 記号と /*#] 記号の間の操作は、手動で編集できます。 を選択して変更をモデルにラウンドトリップさせてください。
アニメーションが有効に設定されて、操作にアニメーション化が必要な引数がない場合、操作 (例えば、print_SERIALIZE など) のために SERIALIZE マクロが生成されます。 SERIALIZE マクロは、トレース/アニメーション設定の間、操作を表示するために使用されます。 SERIALIZE マクロは、インライン操作に対しては生成されません。