本文将以类CTest为例说明如何使用StarUML生成C++代码
图1 类图
CTest类包含3个成员变量iAttr、bAttr、strAttr,其类型分别是int、BOOL、CString
CTest类包含4个成员方法iFunc、bFunc、strFunc和voidFunc,其返回值类型依次是int、BOOL、CString和void
配置Profile
更详细的配置见帮助文档:菜单项 Help --> C++ Add-in Help
图2 帮助文档
这里只描述安装StarUML后,为了生成代码需要设置的步骤。
选择菜单项 Tools/Options,弹出如下图所示的对话框
图3 Options对话框
窗口左侧选择 C++/Code Generation(红色圈起部分),然后在窗口右侧勾选Generate codes even when there is no profile,否则,在类图(不是上图的Options对话框 )中右键菜单中选择菜单项 C++/Generate code...后会弹出下图所示对话框
图4 错误对话框
如果使用VC++6.0,则需要勾选Options对话框中蓝色圈起部分(Use Microsoft visual C++ grammar)。还可以根据需要勾选Generate namespace as subdirectory等选项。
生成C++代码
设置好Profile并设计好类图后,在类图的空白处右键单击并选择C++/Generate code...
图5 生成C++代码
在弹出的对话框中选择类图所属的Model,本例中CTest类在Design Model中
图6 生成代码2
选择Model后操作由于篇幅原因,在此不再赘述。
设置成员类型
到目前为止,在生成代码时,所有的成员(变量和方法)均按照默认的类型生成(成员变量类型为int,成员方法返回类型为void)。
要设置成员的类型,可以在成员后面加上:成员类型(如:int),返回类型为void的方法无需处理。
还可以通过选中类CTest,在右侧的属性对话框中设置成员的类型
在Attributes或者Operations后单击单元格,会出现“...”按钮,单击“...”按钮,会弹出
选中其中一个成员,此时主窗口右侧的属性对话框已更改,在属性对话框中设置变量类型即可。
构造函数与析构函数
到目前为止,生成的代码中不会出现构造函数和析构函数,因为构造函数和析构函数需要自己添加,并且在构造函数之前要加上<<create>>,在析构函数之前要加上<<destory>>,或者使用上图属性对话框中的Steorotype添加<<create>>和<<destroy>>