GLib - class_init 和 init class 方法之间的区别
GLib - difference between class_init and init class methods
我是一个能说会道的新手,我仍在努力理解 my_class_name_class_init()
方法和 my_class_name_init()
方法之间的区别。
我知道后者有点等同于 C++ 构造函数,它针对创建的对象的每个实例进行,但我不太了解那些 my_class_name_class_init()
方法的目的。通过阅读 the documentation,我认为 class_init()
方法有点类似于对所有实例都有效的静态构造函数,但我仍然不确定我是否正确。
class_init()
方法的目的是什么?
class_init
函数每 class、before first instance is constructed - in that way they are similar to C# static constructors 执行一次。相反,instance_init
函数会为创建的每个对象实例调用,并负责初始化该实例。
与静态构造函数一样,class_init
负责初始化所有实例可能需要的任何共享数据,但更重要的是,在 GObject 中,它们在设置 GObject 对象系统中起着至关重要的作用。他们负责:
我是一个能说会道的新手,我仍在努力理解 my_class_name_class_init()
方法和 my_class_name_init()
方法之间的区别。
我知道后者有点等同于 C++ 构造函数,它针对创建的对象的每个实例进行,但我不太了解那些 my_class_name_class_init()
方法的目的。通过阅读 the documentation,我认为 class_init()
方法有点类似于对所有实例都有效的静态构造函数,但我仍然不确定我是否正确。
class_init()
方法的目的是什么?
class_init
函数每 class、before first instance is constructed - in that way they are similar to C# static constructors 执行一次。相反,instance_init
函数会为创建的每个对象实例调用,并负责初始化该实例。
与静态构造函数一样,class_init
负责初始化所有实例可能需要的任何共享数据,但更重要的是,在 GObject 中,它们在设置 GObject 对象系统中起着至关重要的作用。他们负责: