前页 后页

C语言中的面向对象编程

在Enterprise Architect ,您为C中的面向对象编程应用了许多约定。

要将系统配置为支持使用C的面向对象的编程,必须在“首选项”对话框的“ C规范”页面上将“面向对象的支持”选项设置为True。

刻板印象

刻板印象

适用于

也可以看看

枚举

对应于:枚举类型。

结构

对应于:“结构”类型。

属性

变量定义中的关键字struct。

类型定义

对应于:'typedef'语句,其中父级是原始类型名称。

联盟

对应于:联合类型。

属性

变量定义中的关键字联合。

标记值

标签

适用于

也可以看看

匿名

构造型为“枚举”,“结构”或“联合”的类

对应于:此类的名称仅由typedef语句定义。

身体位置

操作方式

对应于:方法体生成的位置;期望值为“ header”,“ classDec”或“ classBody”。

定义

属性

对应于:'#define'语句。

类型定义

构造型为“枚举”,“结构”或“联合”的类

对应于:此类在'typedef'语句中定义。

UML模型的面向对象的C代码生成

用C代码实现UML类的基本思想是将数据变量( UML属性)分组为结构类型。此结构在.h文件中定义,以便可以由其他类以及引用该结构的客户端共享。

UML类中的操作以C函数形式实现;函数的名称必须是包含操作名称和Class名称的完全限定名称,以表明该操作是针对该Class的。

分隔符(在“ C规范”页面的“名称空间分隔符”选项中指定)用于连接类名和函数(操作)名。

C代码中的函数还必须具有对Class对象的引用参数-您可以在“ C规范”页面上修改“引用为操作参数”,“引用参数样式”和“引用参数名称”选项以支持此引用参数。

C语言中面向对象编程的局限性

  • 没有属性的作用域映射: UML类中的属性被映射到C代码中的结构变量,并且其作用域(私有,保护或公共)被忽略
  • 当前,一个内部类被忽略:如果一个UML类是另一个UML类的内部类,则在生成C代码时将被忽略。
  • 初始值被忽略: UML类中属性的初始值在生成的C代码中被忽略

学到更多