通过使用选项板,Modeling Assistant,或者弹出式菜单,Rational Systems Developer 工具支持来自 Class 图的 C++ 元素的创建和编辑。
可以通过使用 C/C++(图 19)或者一个类图的弹出式操作栏(图 20)来创建一个新的 C++ 类或者枚举。
例如,要创建一个新的源自于 LibraryEntry的名称为 ElectronicMediaC++ 的类:
- 从选项板中选择 C++ Class,然后点击一个类图。
- 这样将会弹出 CDT New Class wizard(参见图 21)。
- 键入这个类的名称
ElectronicMedia。 - 现在,可以选择这个基类,点击Add按钮,然后从对话框中选择 LibraryEntry。
- 点击 Finish。
您还可以在 New Class向导中更改创建的默认文档,确定这个类所属的字段名。
接下来,创建一个代表 ElectronicMedia类型的新枚举,您将为它命名为 EMediaType:
- 将鼠标指针移到 Class 图的空白处。
- 当这个操作栏出现时,选择这个棕色的E字母。(参见图 20,如先前所显示。)
- 这将启动 New Enum 向导(图 22)。键入名称
EMediaType。 - 点击 Finish。
提示:
您还可以在向导中更改创建的默认文档,确定这个类所属的字段名。
您可以通过使用这个弹出式菜单(图 23)或者弹出式操作栏(图 24),为可视化 C++ 类添加新的域和操作。

图 23. C/C++ 为 C++ 类添加弹出式菜单
图 24. C++ 类的弹出式操作栏
例如,添加一个类型 Publisher 的 protected 域到 ElectronicMedia类:
- 点击类
ElectronicMedia的弹出式操作栏中的 Add Field图标(请再次查看图 24)。 - 在 New C/C++ Field 向导中键入
publisher作为名称,显示在 (图 25)中。 - 要选择
Publisher类型,点击 Type Browse。 - 在 Type Selection对话框中,键入字母
P来列出所有以 P开头的元素。 - 从列表中选择 Publisher,然后点击 OK。
- 从 Access Visibility下拉框中,选择 Protected。
- 点击 Finish。
类似地,添加一个叫做 Publisher getPublisher()的新方法到 ElectronicMedia类:
- 右键点击这个类 ElectronicMedia,如图中所显示。
- 从弹出式菜单中选择 Add C/C++ > Method,如先前图 23所显示的那样。
- 在弹出的(紧接着是 图 26)New C/C++ Method 向导中,键入
getPublisher作为这个程序的名称。 - 选择 Publisher作为返回类型,点击 Return Type的 Browse按钮。
- 在弹出的 Type Selection对话框中,键入
P列出所有以 P开头的元素。 - 从列表中选择
Publisher并点击 OK按钮。 - 点击 Finish。
这些操作将分别在 Add Field 向导中显示,或者在 Add Operation 向导中显示,如图 25和图 26所示。
添加枚举文字
您还可以添加枚举文字到显示在类图中的 enum元素,可以通过弹出式操作栏(图27)或者弹出式菜单(图 28)来实现。例如,添加一个新的文字 CD到 EMediaType:
- 将鼠标悬浮在可视化 EMediaType之上。
- 从弹出式操作栏中选择 添加枚举文字(图 27)
在弹出的 Enumeration Literal向导(图 29)中,键入文字名称CD。 - 点击 Finish。

图 27. 添加 Enumeration Literal 弹出式操作栏

图 28. 添加 Enumeration Literal 弹出式菜单

图 29. 添加 Enumeration Literal 向导
您可以通过使用点击-和-拖放的方法很容易地创建 C++ 元素之间地相互关系。这种关系地类型可以从 C/C++ Palette(参见图 19,先前所示)中选择。例如,要创建一个从 ElectronicMediaType到 Author的关联关系:
- 从 C/C++ 选项板中选择 Create Association(图 19,如先前所示)。
- 点击 ElectronicMediaType,并将这个元素拖放到 Author。
- 在弹出的向导中确定名称,可见度,以及其它具体的细节 (图 30)。
- 点击 Finish。
如果您愿意,您可以通过使用 Modeling Assistant来代替创建它们之间的相互关系。利用这个工具,您可以创建已经存在在图中元素或者新元素之间的关系,并且现有的元素不在这个图上 。例如,要创建一个由 ElectronicMedia类继承而来,叫做 EBook的新类:
- 将光标悬在 ElectronicMedia之上。
- 点击引入的箭头,从元素拖拽到一个空图位置。这将产生一个弹出式菜单(图 31)。
- 选择 Create Inherits (Generalization) from > New Element: C++ Class。这将启动 New Class 向导早期在图 21中有所显示。
- 键入
EBook作为名称,然后点击 Finish。 - 接下来,您将看到 Inheritance 向导,这时您可以确定可见度为 Public。
- 点击 Finish。
要在图上创建元素之间的关系,可以利用 Modeling Assistant:
- 在两个元素之间要么拖拽引入的要么拖拽引出的箭头。
- 然后选择关系的类型,比如 Author 或者 Publisher,如图 23所示。
通过使用元素的弹出式菜单,很容易就可以从这个图更改 C++ 类成员的可见度。例如,在 ElectronicMedia下,将 publisher域的可视性更改为 private,右键点击这个域并从弹出式菜单中选择 Visibility > Private,如图 34 所示。
您可以利用元素的弹出式菜单,对显示在图中的一个元素进行重命名:Refactor > Rename。例如,将 ElectronicMedia的域类型 重新命名为 mediaType:
- 右键点击这个域类型并选择 Refactor > Rename,如图 35所示。
- 键入新的名称,
mediaType,它将显示在 Rename Refactor 向导中 (图 36)。 - 选择Preview 来预览您的更改,然后点击 OK。

图 35. Rename 弹出式菜单

图 36. Rename Refactor 向导
另一种对元素重命名的方法是直接从图中进行编辑。您还可以利用这种方法来更改域类型和操作。例如,在 Library类下,更改 entries: int域的名称和类型为 totalEntries:long,按照以下这些步骤:
- 选择 Entries域。
- 点击这个图使图文本为可编辑类型 (图 37)。
- 键入新名称和输入格式为
totalEntries: long,然后按下 Enter键。
重点:
这是确定名称和类型的 UML 方法。不要使用确定这个信息的 C++ 类型。
- 当您看到 Edit Preview对话框(图 38)时,在那个对话框屏幕中点击 OK。
在图中直接重命名可以是一个简单的重命名或者重构。您需要在 C++ 建模 Preferences页面上设置这个选项。
- 选择 Window > Preferences。
- 从这个树中(图 39)选择 Modeling > C++ Modeling。
- 当您选择Simple rename 时,只有表示位置在这个图中的名称才可以更改。
- 当您选择 Refactor rename时,所有这个名称的参考都会更改。

图 39. C++ Modeling Preference 页面
提示:
最好是利用 Preview选项来检查这些更改。这是因为实际的源代码和变量绑定可以更改,这是建立在环境或者构建宏预处理程序指令的时间定义的基础上的。