为什么gobject有install_properties方法?

时间:2016-03-06 14:26:43

标签: gobject

我正在关注gobject教程,我发现有一个方法是install_proprties(),它安装了以后可以由set_properties和get_properties使用的属性。我的问题是为什么我们需要install_properties而不是直接在实例结构中有字段,如C ++或Java?

1 个答案:

答案 0 :(得分:0)

GObject是一个基于C的面向对象框架;这意味着它必须在较小的语言之上提供功能,而不需要更高级语言的语法糖,例如C ++或Java。

对于属性,GObject必须定义"命名字段"在运行时,允许内省 - 即查询对象类型的功能的能力 - 以及通用访问和更改通知。这些命名字段不一定映射到实例结构中的字段:它们可以是只读的或只写的;它们可以在飞行中计算;它们只能在施工时使用。

其他语言也可能具有这些功能,但它们通常通过语言自己的语法公开;这在GObject / C中不会发生。