変換は、関連を C++ コードでメンバー変数に変換します。 非合成関連の場合、変換は、ポインター記号 (*) を属性のタイプ限定子に追加します。 多重度を指定し、それを特定の数値 (高低の範囲が同じ) に設定すると、変換は、配列仕様を属性に追加します。
変換は、以下の関連端プロパティーを使用してコードを生成します。
プロパティー |
C++ |
Name |
指定した名前を含む新規のメンバー変数を作成する (名前の検証を実行する) |
Visibility |
生成されたメンバー変数の可視性を決定する |
デフォルトで、変換は、UML 汎化関係の対象用に public の継承を生成します。 変換は、対象用のヘッダー・ファイルを生成されたヘッダー・ファイルに自動的に組み込みます。 C++ 変換は多重継承をサポートします。
cpp_generalization ステレオタイプを適用して、指定した汎化関係の可視性 (public、protected、private、およびデフォルト) を指定することができます。
一般に、「使用」関係はクラスまたは列挙の参照を示します。デフォルトで、使用関係は、生成されたヘッダー・ファイルで下方参照に変換され、ボディ・ファイルでは「include」ディレクティブに変換されます。
cpp_dependency ステレオタイプを適用し、その isInclusionInHeader 属性を true に設定すると、変換は、inclusion ディレクティブをヘッダーに生成します。
cpp_friend ステレオタイプを関係に適用することによって、「使用」関係を使用してクラス間の「フレンド」関係を表すことができます。 変換は、生成されたヘッダー・ファイルに「friend」文節を組み込みます (たとえば、"friend class Class1;")。変換は、friend 関数用にボディ・スタブを生成せずに、friend クラスの依存を生成コードに追加します。
以下のような <<TBD ...>> タグを使用した組み込みパスが現れることがあります。
#include "../<<TBD actual project path>>/..."
このタグが現れる原因として、変換が、異なる UML モデルから要素を使用したことが考えられます。 <<TBD ..>> タグを、参照ファイルへの実際のプロジェクト・パスに置換する必要があります。
変換は、テンプレート・パラメーターを使用する UML クラスをテンプレート・クラスに変換します。
変換は、Class1 の対象との「バインド」関係を持つ UML クラスを、テンプレート・クラス Class1 をインスタンス化したものと見なします。変換は、バインド関係が指定するパラメーター置換を使用して、仮パラメーターを実パラメーターに解決します。
1 つのクラスに複数の「バインド」関係がある場合には警告が現れます。 1 つのクラスに複数のバインド関係がある場合、変換は最初のバインド関係を使用してコードを生成します。
変換は、実パラメーターのデータ・タイプをインスタンス化されたクラス組み込みリストに追加します。
以下の図では、変換がサポートするインスタンス化関係 (あるクラスがパラメーター化されたクラスであり、他のクラスがインスタンス化されたクラスである) について説明します。
変換は、テンプレート・クラスのより複雑な使用パターンをサポートしていません。これには、テンプレートの静的変数および仮パラメーターとして使用するパラメーター化されたクラスが含まれます。