此转换使用“C++ 转换”概要文件来传达有关 UML 中尚未可用的模型的信息。概要文件包括以下构造型:
构造型 |
适用于 |
属性 |
类型 |
cpp_type |
参数、属性 |
isMutable、 qualifier(字符串)、InitializerKind(Enumeration) |
缺省值为 false 的 Boolean |
cpp_generalization |
泛化关系 |
GeneralizationKind |
枚举 |
cpp_struct |
类 |
|
缺省值为 false 的 Boolean |
cpp_union |
类 |
isAnonymousUnion |
缺省值为 false 的 Boolean |
cpp_typedef |
类 |
ImplementationType |
字符串 |
cpp_dependency |
依赖关系 |
isInclusionInHeader |
缺省值为 false 的 Boolean |
cpp_friend |
依赖关系 |
|
缺省值为 false 的 Boolean |
cpp_namespace |
包、模型 |
NamespaceName |
字符串 |
cpp_operation |
操作 |
isInline、isVirtual、isFriend |
缺省值为 false 的 Boolean |
cpp_constructor |
操作 |
isExplicit、isInline |
缺省值为 false 的 Boolean |
cpp_copy_constructor |
操作 |
isExplicit、isInline |
缺省值为 false 的 Boolean |
cpp_destructor |
操作 |
isVirtual、isInline |
缺省值为 false 的 Boolean |
cpp_assignment |
操作 |
isInline |
缺省值为 false 的 Boolean |
您不得将多个 C++ 转换构造型应用于一个 UML 对象。应用多个构造型具有以下结果:
· UML 类(cpp_struct、cpp_union、cpp_typedef):转换只创建一个对象,无论您应用多少个构造型。转换为 cpp_typedef 提供优先级。如果未应用 cpp_typedef 构造型,并且应用了 cpp_struct 和 cpp_union 构造型,则转换生成没有标准操作的 C++ 构造。
· UML 依赖关系(cpp_dependency、cpp_friend):如果应用两个构造型,则转换处理两个构造型并创建一个“友元”关系和一个依赖关系。
· UML 操作(cpp_operation、cpp_constructor、cpp_copy_constructor、cpp_destructor、cpp_assignment):转换只创建一个对象,无论您将多少个构造型应用于操作。以下列表显示构造型的优先级(从最高到最低):
o cpp_constructor,
o cpp_copy_constructor,
o cpp_destructor,
o cpp_assignment,
o cpp_operation