GObject

GObject是GLib的可移植对象系统,作为GNOME的基石,被广泛应用于GTK+等。GObject提供了动态类型系统,包括基础类型、派生类型、消息系统(Closures和Signals)等。它允许在C语言中直接使用,也可用于其他语言的绑定。GObject的类结构体和实例结构体分别对应类和实例的实现,其中实例结构体以父类结构体开始,确保对象以指向类结构的指针开头。

GObject

GLib Object System,也叫GObject,是一个免费的库(由LGPL授权)。它提供了一个可移植的对象系统,清晰的跨语言互用性。GObject被设计成既可以直接在C语言中使用,也可以通过绑定,用于其它语言。

历史

GObject只依赖于GLib和libc,它是GNOME的基石,被广泛应用于GTK+,Pango,Accessibility Toolkit及大多数高层次GNOME库和应用程序。在GTK+2.0 之前,GObject代码是GTK+代码的一部分。(名字“GObject ” 当时还未使用——共同的基类叫GtkObject)

 

由于它的通用性,GTK+2.0把这个对象系统给抽取成一个分离的库。 再这个过程中,GtkObject内和GUI无关的部分被移到GObject中,GObject成为新的共同基类。自从2002年3月11日(GTK+2.0发布),GObject作为一个分离开的库已经被很多非GUI的程序所使用,例如命令行和server应用程序。

和Gilb的关系

尽管GObject有它自己的文档集,并且通常被编译成它自己的共享文件,但是GObject的源代码位于GLib的源代码树,并且和GLib一起发布。因此,GObject采用GLib的版本号,典型地和Glib打包在一起(例如,Debian把GObject放在libglib2.0包族)。

类型系统

GObject框架最基础的一层是一个叫做GType的泛化的动态的类型系统。GType系统保存着所有对象的运行时描述符,这样可以利用“胶水”代码便于多语言绑定。这个类型系统可以处理任何单继承类结构,附加地也可以处理

非类结构的类型,例如opaque pointers,s

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值