隐式类型的对象

隐式类型的对象是无法为定义其他对象进行复用的简单对象。隐式类型有助于实例库建模,它区别于面向对象的建模。面向对象的建模需要每个结构实体都是现有类型的实例。这种必需的结构在面向对象的系统中称作类型/实例二分法。

对于隐式类型的对象,所生成的 C 结构会带有对象的名称和后缀“_t”。不会为该对象定义类型。例如,名称为 A_t 的 C 结构是在隐式类型的对象 A 的规范文件中生成的。该对象具有一个名称为 att1 的特性,它是作为结构的数据成员而生成的,如下所示:

struct A_t {
    /***    User-explicit entries    ***/
    int att1;      /*## attribute att1 */
};

对象所属的程序包的规范文件中会为对象进行实例化并分配内存。例如,对象 A 所属的 Default 程序包的规范文件中会生成以下语句:

struct A_t;
extern struct A_t A;

第一条语句是结构 A_t 的声明;第二条是 struct A_t 的实例 A 的实际定义和内存分配。

注: extern 关键字指示 A 在此处声明但在其他位置定义(一次)。跟在这类声明之后的任何代码都可以引用 A。如果相同的 extern 语句出现在不同的文件中,这些语句指示的是相同的 A

IBM® Rational® Rhapsody® 会自动生成操作以处理对象创建、初始化、清除和销毁。这些操作与 C++ 中的构造函数和析构函数类似。例如,会为 A 自动生成以下操作:

不会为单例生成 Create()Destroy() 操作。请参阅单例对象以获取更多信息。


反馈