结构体

GObjectTypeInfo

描述 [源]

struct GTypeInfo {
  guint16 class_size;
  GBaseInitFunc base_init;
  GBaseFinalizeFunc base_finalize;
  GClassInitFunc class_init;
  GClassFinalizeFunc class_finalize;
  gconstpointer class_data;
  guint16 instance_size;
  guint16 n_preallocs;
  GInstanceInitFunc instance_init;
  const GTypeValueTable* value_table;
}

此结构体用于为类型系统提供初始化和销毁(最终化)类型类及其实例所需的信息。

初始化的结构体传递给 g_type_register_static() 函数(或者在 g_type_plugin_complete_type_info() 中复制到提供的 GTypeInfo 结构体)。类型系统将对此结构体执行深度复制,因此它的内存不需要在 g_type_register_static() 调用之间保持持久。

结构体成员
class_size

类结构的大小(对接口、类和可实例化类型是必需的)。

base_init

基础初始化函数的位置(可选)。

base_finalize

基础最终化函数的位置(可选)。

class_init

类初始化函数的位置,用于类和可实例化类型。接口类型的默认虚表初始化函数的位置(可选)。此函数既用于填充类或默认虚表中的虚拟函数,也用于执行类型特定的设置,例如登记信号和对象属性。

class_finalize

类最终化函数的位置,用于类和可实例化类型。接口类型的默认虚表最终化函数的位置(可选)。

class_data

用户提供给类初始化/最终化函数的数据。

instance_size

实例(对象)结构的大小(仅对可实例化类型必须)。

n_preallocs

在 GLib 2.10 之前,它指定要预留内存的预分配(缓存)实例的数量(0表示不缓存)。从 GLib 2.10 以来,此字段被忽略。

instance_init

实例初始化函数的位置(可选,仅对可实例化类型)。

value_table

一个 GTypeValueTable 函数表,用于处理此类型的 GValues(通常仅对基本类型有用)。