2016-03-06 41 views
0

我正在關注gobject教程,並且看到有一種方法是install_proprties(),它將安裝稍後可以通過set_properties和get_properties使用的屬性。我的問題是爲什麼我們需要install_properties,而不是像C++或Java那樣直接在實例結構中使用字段?爲什麼gobject有install_properties方法?

回答

0

GObject是C上面向對象的框架;這意味着它必須在較小的語言之上提供功能,而不需要高級語言的語法糖,例如C++或Java。對於屬性,GObject必須在運行時定義「命名字段」以允許內省 - 即查詢對象類型的能力 - 以及通用訪問和更改通知。這些命名字段不一定映射到實例結構中的字段:它們可以是隻讀的或只寫的;他們可以即時計算;它們只能在施工時使用。

其他語言也可能具有這些功能,但它們通常通過語言本身的語法暴露;這在GObject/C中不會發生。

相關問題