複数の要因により、UML から C++ への変換におけるクラス、列挙、およびインターフェースからの C++ 要素の生成方法が決まります。
標準テンプレート・ライブラリー・クラスへの参照
デフォルトでは、モデルに標準テンプレート・ライブラリー (STL) のクラスへの参照が含まれている場合、変換により対応するヘッダー・ファイル名を指定するインクルード・ディレクティブが生成されます。 例えば、モデルに「vector<>」という名前の STL クラスへの参照が含まれている場合、変換によりインクルード・ディレクティブ
#include <vector> が生成されます。
ヒント: UML から C++ への変換用に、この設定を編集できます。
UML クラス
変換では、変換構成のソースで指定されたそれぞれのクラスごとに、ヘッダー・ファイル、およびオプションでボディ・ファイルが生成されます。
デフォルトで、ボディ・ファイルのファイル名拡張子として .cpp が付けられます。
変換では、ステレオタイプ «cpp_struct≫、«cpp_union≫、«cpp_typedef»
が適用されている UML クラスから、C++ の構造体、共用体、型定義を生成します。
モデル内の各要素にこれらのステレオタイプを適用するには、C++ 変換プロファイルを適用しておく必要があります。
変換では、以下の項目のボディ・ファイルは生成しません。
- ステレオタイプ «cpp_typedef» が適用されているクラス
- ステレオタイプ «cpp_struct≫、«cpp_typedef≫、または «cpp_union»
が適用されていて、操作が含まれていないクラス
- ステレオタイプ «cpp_struct≫、«cpp_typedef≫、または «cpp_union»
が適用されていて、抽象操作のみが含まれているクラス
- ステレオタイプが適用されておらず、操作が含まれていないクラス
- ステレオタイプが適用されておらず、抽象操作のみが含まれているクラス
変換では、クラスの名前をヘッダー・ファイルおよびボディ・ファイルに割り当てます。
クラスの名前が C++ の命名規則に準拠していない場合、またはその名前が固有ではない場合は、変換により新規の名前がヘッダー・ファイルおよびボディ・ファイルに割り当てられます。
生成されたボディ・ファイルには、対応するヘッダー・ファイルの #include ディレクティブが含まれます。
変換では、ヘッダー・ファイル内に、UML テンプレート・クラスのコード、
およびテンプレート・クラスのメソッド本文が生成されます。
UML 列挙
変換では、変換構成のソースで指定したそれぞれの UML 列挙ごとに、C++ 列挙型を生成します。
必要に応じて変換では、C++ ルールに準拠した固有の名前を割り当てますが、そうでない場合は、生成された C++ 列挙型に UML 列挙と同じ名前が付けられます。
変換により、UML 列挙リテラルは C++ 列挙型リテラルに変換されます。
匿名列挙を生成するには、C++ 変換プロファイルをソース・モデルに適用し、«cpp_enum» ステレオタイプを列挙に適用して、その isAnonymousEnum プロパティーを true に設定する必要があります。
UML インターフェース
変換により、UML インターフェースは C++ クラスに変換されます。
インターフェース内の UML 操作は、純粋仮想 C++ メソッドに変換されます。
ネストされた UML クラス、列挙、およびインターフェース
変換では、ネストされた各要素に対して別々のヘッダー・ファイルおよびボディ・ファイルは生成しません。
代わりに、変換では、ネストされた要素を含んだクラスのヘッダー・ファイルおよびボディ・ファイルに、ネストされた要素についての情報を追加します。