如何定义namespace
1. 创建一个Package,,命名为Namespaces。
2. 在刚才建立的Package下建立一个GClass类,定义一个int i和getvalue成员函数。如图:
3. 双击Namespaces package,并在“ANSI C++”标签里将IsNamspace属性置为true,如图:
4. 生成代码
Ø 正向工程与逆向工程
正向工程:
1).检查并创建模型中的类,比如创建类名为GClass的一个类;
2).在Component View里创建构件(component); 如:创建名字为NewPackageBody的component名称
3).双击刚才建立的构件(NewPackageBody),在弹出的Component Sepcification窗口中的Realizes标签页里右击你要分配的类,选择”assign”将类映射到构件,同时你需要在General标签页里将language选项设置成ANSI C++ ,如下图:
4).可以在Tools->ANSI C++->Open ANSI C++ Specification设置代码生成属性 ,如图:
5).选择类图和(或)构件图中要进行代码生成的类和构件;
6).选择Tools> ANSI C++>Code Generation或者右单击类和构件图标,选择ANSI C++>Generate Code…。
逆向工程:
1)在构件视图(Component View)中创建并命名新的构件(Component),如:NewPackageBody;
2).双击新的构件(NewPackageBody)打开Component Specification窗口,将构件的实现语言改为ANSI C++,如图:
3).右单击新构件(NewPackageBody),选择快捷菜单中的ANSI; C++>Open ANSI C++ Specification…,打开构件ANSI C++ Specification窗口,如图:
4).在构件规范窗口的Files标签中添加源文件;
5).单击构件NewPackageBody,选择Tools>ANSI C++>Reverse engineer…,打开“选择要添加到模型中的类 ”的窗口;
6).选择要添加到模型中的类,单击Ok按钮,开始逆向工程。
Ø 定义模板类
1)检查并在模型中创建一个类,比如创建TAllocator;
2)双击在第一步中创建的类(TAllocator),出现Class Specification窗口,在General标签页中将Type设置为:ParameterizedClass,如图;
3)同时在Class Specification窗口的Detail标签页中的Formal Arguments中增加一个类型名T,类型为class,如图:
定义组合
1)检查并建立模型中的两个类,比如建立类A和类B;
2)使用聚合关系连接A和B;
3)双击那根聚合的连接线,在窗口Aggregation Specification中的Role B Detail中,将Containment of B设置成By Value的方式,如图: