转换生成 UML 操作作为其类的方法,并使用以下 UML 属性:
属性 |
C++ |
名称 |
方法名称(适用于名称验证) |
可视性 |
确定方法的可视性 |
IsAbstract |
生成方法作为纯粹的虚方法 |
IsQuery |
生成方法作为 const(向操作后缀添加“const”) |
IsStatic |
生成具有类而不是实例范围的方法(向操作前缀添加 static 关键字) |
UML 操作返回参数的类型成为生成的 C++ 方法的类型。如果不存在返回参数,则该方法的返回类型假定为 void(除了标准操作)。对无返回参数或具有多个返回参数的操作显示警告。
可以通过将 cpp_operation 构造型应用于 UML 操作来指定几个特定于 C++ 的属性:
· isInline:转换生成操作作为内联(向头添加操作主体)
· isVirtual:声明操作为虚函数
· isFriend:生成友元操作
C++ 不允许静态限定词与虚限定词或友元限定词相结合。 为了生成代码,转换倾向于使用静态限定词。
转换将 UML 参数转换成 C++ 操作的实参。转换不生成具有“返回”类型的参数,而是将它们用作操作返回类型的指示符。 转换将参数类型转换成实参类型。
转换将具有“出”或“进/出”方向的参数转换成引用(意思是向类型规范添加“&”限定词)。
转换使用参数的缺省值来指定 C++ 操作实参的缺省值。
可选地,可以将 cpp_type 构造型应用于 UML 参数。 此构造型具有限定词属性,您可用此属性输入任何字符串,作为生成的类型的限定词。
以下示例显示某些条件如何影响结果代码:
· 如果指定了操作类型(如 Class1),并且您未指定限定词或不应用构造型,则属性的生成代码是“Class1 <ArgumentName>”。
· 如果未指定操作类型,并且您应用 cpp_type 构造型并将限定词字符串设置为“int”,则生成的代码为“int <ArgumentName>”。
· 如果指定了操作类型(Class1),并且您应用 cpp_type 构造型并将限定词字符串设置为“* const”,则生成的代码为“Class1 * const <ArgumentName>”。
转换向包含列表添加参数所使用的 UML 类。
转换按“模型服务器”提供的顺序生成参数。