对象创建程序

对象创建操作会创建对象并调用其初始化方法。其名称的格式为 <object>_Create()

创建程序为对象分配内存,调用对象的初始化方法,并且返回指向所创建对象的指针。

例如,会为对象 A 生成以下创建程序:

A * A_Create() {
   A* me = (A *) malloc(sizeof(A));
   if(me!=NULL)
      {
         A_Init(me);
      }
   return me;
}

对于反应对象,会在创建程序的自变量列表(末尾)中添加任务的指针。该指针指示反应对象将在哪个线程(任务)上运行。例如:

A * A_Create(RiCTask * p_task) {
   A* me = (A *) malloc(sizeof(A));
   if(me!=NULL)
      {
         A_Init(me, p_task);
      }
   DYNAMICALLY_ALLOCATED(me);
   return me;
}

由于在 C 中不能向自变量给定缺省值,您可以为任务传递 NULL 值以使实例在主任务中运行。

C_CG::Class::AllocateMemory 属性和 C_CG::Event::AllocateMemory 属性指定为以动态方式为对象或事件分配内存而生成的字符串。此字符串用于 Create() 操作。该属性的缺省值为:

($cname*) malloc(sizeof($cname));

在所生成的代码中,$cname 关键字会替换为将分配内存的对象或事件的名称。

动态内存分配

您可以通过调用对象的创建程序函数来动态地创建对象。例如:

B *new_B;
new_B = B_create();

您可以通过调用对象的删除函数来动态地删除对象。例如:

B_Destroy(new_B);

反馈