UML 关联关系

转换将关联关系转换成 C++ 代码中的成员变量。对于非组合关联,转换向属性的类型限定词添加指针符号(*)。如果指定了多重性并将其设置为特定数字(上限与下限相同),则转换向属性添加数组规范。

转换使用以下关联关系端属性来生成代码: 

属性

C++

名称

创建具有指定名称(执行名称验证)的新的成员变量

可视性

确定生成的成员变量的可视性

UML 泛化关系

缺省情况下,转换将为 UML 泛化关系的目标生成公共继承。 转换在生成的头文件中自动包含目标的头文件。C++ 转换支持多重继承。 

可以应用 cpp_generalization 构造型来指定给定泛化关系的可视性(公共、保护、私有和缺省)。 

UML“用途”关系

通常,“用途”关系表示对类或枚举的引用。缺省情况下,用途关系转换成生成的头文件中的向前引用和主体文件中的“include”伪指令。 

如果应用 cpp_dependency 构造型并将它的 isInclusionInHeader 属性设置为 true,则转换在头文件中生成包含伪指令。 

通过将 cpp_friend 构造型应用于关系,可以使用“用途”关系来指明类之间的“友元”关系。转换在生成的头文件中包含“friend”子句(例如“friend class Class1;”)。转换不生成“友元”函数的体存根,并向生成的代码自动添加友元类上的依赖关系。 

UML“实施”关系

UML 类可实施 UML 接口。该关系将成为 C++ 类上的公用继承。

UML 模板参数

转换将具有模板参数的 UML 类转换成模板类。

UML“绑定”关系(实例化的类)

转换将与 Class1 的目标具有“绑定”关系的 UML 类视作模板类 Class1 的实例化。转换使用绑定关系指定的参数替换将形参解析成实参。

如果一个类具有多个“绑定”关系,会出现警告。如果一个类具有多个绑定关系,转换使用第一个绑定关系生成代码。

转换向实例化的类包含列表添加实参的数据类型。

下图说明了转换支持的实例化关系,其中一个类是参数化的类,另一个类是实例化的类。

转换不支持更复杂的模板类的用途模式,包括用作形参的模板和参数化类中的静态变量。

回到页首

使用条款 | 反馈
(C) Copyright IBM Corporation 2005. All Rights Reserved.