パッケージ内で直接定義されている変数を持つモデルを考えてみます。これらの変数は、PI や DEGREES_PER_RADIAN などのさまざまな定数を定義します。変数の中には、他の変数によって定義されるものもあります。アプリケーションをコンパイルするためには、こういった従属変数は、他の変数の前に宣言しておく必要があります。ただしこの製品では、変数宣言のデフォルトのアルファベット順を変更することはできません。
この問題を解決する方法は少なくとも 2 とおりあります。
- 型を使用して定数を定義します。例えば、PI という名前の型を以下のように宣言するとします。
const double %s = 3.14
この構文では、%s は名前 PI で置き換えられます。
DEGREES_PER_RADIAN 型は以下のように宣言されます。
const double %s = 180.0 / PI
この構文では、%s は名前 DEGREES_PER_RADIAN で置き換えられます。
Rational® Rhapsody® では、型宣言の順序は変更可能なため、PI が最初に生成されるので、コンパイルは成功します。
- 初期値 3.14 を持つ型 const double の PI と呼ばれる変数を作成します。初期値 180.0 / PI を持つ型 const double の DEGREES_PER_RADIAN と呼ばれる 2 番目の変数を作成します。Rational Rhapsody は PI 変数より前に DEGREES_PER_RADIAN 変数を生成するため、コンパイルされません。
実装ファイル内で変数を初期化するには、DEGREES_PER_RADIAN 変数で CPP_CG::Attribute::VariableInitializationFile プロパティーを Implementation に設定します。デフォルト設定 (Default) では、型宣言が const で始まる変数の初期化は、宣言ファイルに入ります。それ以外の場合は、実装ファイルに入ります。
これでアプリケーションは正しくコンパイルされます。