前页 | 后页 |
C语言中的面向物件编程
在Enterprise Architect中,您在 C 中应用了许多面向对象编程的约定。
要将系统配置为支持使用 C 的面向对象编程,您必须在“首选项”对话框的“C 规范”页面上将“物件面向支持”选项设置为True 。
构造型
构造型 |
适用于 |
也见 |
---|---|---|
枚举 |
类 对应于:枚举类型。 |
|
结构 |
类 对应于: A结构”类型。 |
|
属性 |
变量定义中A关键字结构。 |
|
类型定义 |
类 对应于A 'typedef' 语句,其中 parent 是原始类型名称。 |
|
联盟 |
类 对应于A联合类型。 |
|
属性 |
变量定义中A关键字 union。 |
标记值
标签 |
适用于 |
也见 |
---|---|---|
匿名的 |
具有“枚举”、“结构”或“联合”刻板印象的类 对应于:这个类的名称仅由 typedef 语句定义。 |
|
身体位置 |
手术 对应于:方法体生成的位置;预期值为“header”、“classDec”或“classBody”。 |
|
定义 |
属性 对应于:'#define' 语句。 |
|
类型定义 |
具有“枚举”、“结构”或“联合”刻板印象的类 对应于:在“类”语句中定义的此类。 |
UML模型的面向对象的 C 代码生成
在 C 代码中实现UML类的基本思想是将数据变量( UML属性)分组为结构类型;此结构在 .h 文件中定义,以便其他类和引用它的客户端可以共享它。
UML类中的操作在 C 代码中实现为函数;函数名必须是一个完全限定名,由操作名和类名组成,以表明该操作是针对类的。
分隔符( A “C 规范”页面上的“命名空间分隔符”选项中指定)用于连接类名和函数(操作)名。
C 代码中的函数还必须具有类object的引用参数 - 您可以修改“C 规范”页面上的“参考操作参数”、“参数样式”和“参考参数名称”选项以支持此参考范围。
C 中面向对象编程的局限性
- 属性没有范围映射: UML类中的属性映射到 C 代码中的结构变量,其范围(私有、受保护或公共)被忽略
- 目前忽略了一个内部类:如果一个UML类是另一个UML类的内部类,则在生成C代码时忽略它
- 忽略初始值:在生成的 C 代码中忽略UML类中属性的初始值