GObject对象系统
日期:2007年6月1日 作者: 查看:[大字体 中字体 小字体]-
内容:
前言
类型(GType)与对象(GObject)
对象的定义
对象的实现
信号的定义和应用
对象的属性和方法
对象的继承
测试我们定义的对象
感谢
参考资料
关于作者
对于本文的评价
相关内容:
浅析 GLib
在 Linux 专区还有:
教程
工具与产品
代码与组件
项目
文章
宋国伟 (gwsong52@sohu.com) 乡村小学英语教师
2003 年 8 月
简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。如果你是一个C语言的执着的追随者,你没有理由不研究一下它。
前言
大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象系统提供了一种灵活的、可扩展的、并容易映射(到其它语言)的面向对象的C语言框架。它的实质可以概括为:
* 一个通用类型系统,用来注册任意的、轻便的、单根继承的、并能推导出任意深度的结构类型的界面,它照顾组合对象的定制、初始化和内存管理,类结构,保持对象的父子关系,处理这些类型的动态实现。也就是说,这些类型的实现是在运行时重置和卸载的;
* 一个基本类型的实现集,如整型,枚举型和结构型等;
* 一个基本对象体系之上的基本对象类型的实现的例子--GObject基本类型;
* 一个信号系统,允许用户非常灵活的自定义虚的或重载对象的方法,并且能充当非常有效力的通知机制;
* 一个可扩展的参数/变量体系,支持所有的能被用作处理对象属性或其它参数化类型的基本的类型。
类型(GType)与对象(GObject)
GLib中最有特色的是它的对象系统--GObject System,它是以Gtype为基础而实现的一套单根继承的C语言的面向对象的框架。
GType 是GLib 运行时类型认证和管理系统。GType API 是GObject的基础系统,所以理解GType是理解GObject的关键。Gtype提供了注册和管理所有基本数据类型、用户定义对象和界面类型的技术实现。(注意:在运用任一GType和GObject函数之前必需运行g_type_init()函数来初始化类型系统。)
为实现类型定制和注册这一目的,所有类型必需是静态的或动态的这二者之一。静态的类型永远不能在运行时加载或卸载,而动态的类型则可以。静态类型由 g_type_register_static()创建,通过GTypeInfo结构来取得类型的特殊信息。动态类型则由 g_type_register_dynamic()创建,用GTypePlugin结构来取代GTypeInfo,并且还包括 g_type_plugin_*()系列API。这些注册函数通常只运行一次,目的是取得它们返回的专有类的类型标识。
还可以用g_type_register_fundamental来注册基础类型,它同时需要GTypeInfo和GTypeFundamentalInfo两个结构,事实上大多数情况下这是不必要的,因为系统预先定义的基础类型是优于用户自定义的。
(本文重点介绍创建和使用静态的类型。)
对象的定义
在GObject系统中,对象由三个部分组成:
1. 对象的ID标识(唯一,无符号长整型,所有此类对象共同的标识);
- [1] [2] [3] [4] [5] [6] [7] [8] 下一页
-
- GObject对象系统 相关文章:
- GObject对象系统 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:pico编辑器
下一篇:用xtt重新调整好了我混乱的字体显示,而且有了粗体,斜体,粗斜体哦。
精品推荐
热点TOP10
- ·Linux学习手册
- ·在Linux 和FireWire上创建自己的RAC 集群
- ·Linux操作系统源代码详细分析
- ·linux知识大全
- ·Linux/Unix环境下的make命令详解
- ·RPM命令大全
- ·Linux From Scratch安装学习笔记
- ·在Linux下配置TCP/IP
- ·为CanonPIXMAiP1000喷墨打印机安装驱动程序
- ·常见端口表汇总
- ·Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To
- ·LINUX 常见问题1000个详细解答
- ·万能声卡驱动(Alsa)的安装方法
- ·hdparm硬盘加速
- ·Linux管理工具介绍
- ·Linux发行版图标大全
- ·Linux中系统整体性能监控工具详细介绍
- ·长篇连载--arm linux演艺---序
- ·Bourne shell编程入门及脚本测试
- ·重安装gentoo 2005.1 for AMD64版经验
特别推荐
- ·Linux管理工具介绍
- ·Linux操作系统源代码详细分析
- ·Linux下用pptp连接VPN服务器
- ·在linux7.1上安装jdk+tomcat+oracle9i笔记
- ·Linux学习手册
- ·学习Linux的八点忠告
- ·深入分析Linux防火墙
- ·UNIX系统后门的安放和日志的擦除
- ·揭开Expect的神秘面纱
- ·万能声卡驱动(Alsa)的安装方法
- ·长篇连载--arm linux演艺---序
- ·为CanonPIXMAiP1000喷墨打印机安装驱动程序
- ·详细讲解Linux系统下ADSL拨号上网方法
- ·使用ImageMagick 的提示与技巧
- ·轻松实现 Linux系统下互联网过滤功能
- ·Linux下一些故障现象以及解决的相关资源
- ·重安装gentoo 2005.1 for AMD64版经验
- ·Linux/Unix环境下的make命令详解
- ·只需十分钟 Linux环境下快速搭建维基网站
- ·常见端口表汇总
