前页 | 后页 |
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代码中被忽略