将一个方法的形参设置为常量 这个技巧的原理同上(前面提到的定义多维数组)。在 Project Explorer 中选择准备设置为 const 的参数。单击 Apply Stereotypes 按钮并选择 cpp_type 原型。该类型提供了以下属性/值:
arrayDimensions
InitializerKind
isAuto
isMutable
isRegister
isVolatile
qualifier
这些属性都是可能用得到的,但暂时只介绍 qualifier 属性。在 qualifier 的 Value 处,输入 const (如 图5 所示)。这样,当转换执行的时候,将在源代码中为选定的参数生成带有常量修饰符的函数签名。
注: 请确保输入的值是有效的。如果输入错误,则会导致编译失败,您需要在再次运行转换之前修正错误。
另外,cpp_type 原型也适用于类的属性。但是,生成一个常量属性的更简单的方法是将属性标明为 Read Only。
将整个方法声明为常量 假设您想要将一个方法声明为常量,以便在生成的代码中带有 const 关键字: )int Operation1(MyType Parameter1 const;。您需要在 Properties 视图的 General 选项卡中选择 Query 修饰符。这里,不需要应用原型。
图7. 创建一个常量方法
给一个方法增加异常处理 Exceptions 是 UML 中重要的类,它在建模过程中不需要使用概要文件。为了简化并推广建模, UML to C++ Transformation 使用了普遍适用的 UML 属性,而不是概要文件。要生成一个 throw 子句,比如 int Operation1() throw ( MyType);,您首先需要为操作创建一个参数,然后设置其 Is Exception 属性为 true。
在转换过程中,参数名是可以被忽略的,但最好还是定义一个合适的名称(以备异常抛出时正确提示)。图8显示了如何将参数的 Is Exception 属性设置为 true。
图8. 设置某方法的 throw 类型
