预订演示
前页 后页

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类中属性的初始值

了解更多