GObject
- 最近在阅读 GStreamer 源代码,有些不太懂的地方,来学习GObject的简单使用,够用就行了
- GObject 告诉我们,使用 C 语言编写程序时,可以运用面向对象这种编程思想。
如何用 GObject 封装一个对象
#ifndef HOME_H
#define HOME_H
#include <glib-object.h>
/*获取HOME_TYPE类型*/
#define HOME_TYPE (home_get_type())
/* 检查obj是否是Home类型,如果是,则将返回指向obj成员变量Home的指针 */
#define HOME_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), HOME_TYPE, Home))
/*类实例类型判断, 判断obj是否为Home*/
#define IS_HOME_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HOME_TYPE))
/* 检查klass是不是HomeClass类型,如果是,则将返回指向klass成员变量HomeClass的指针 */
#define HOME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HOME_TYPE, HomeClass))
/* 类结构判定, 判断obj是否为HomeClass*/
#define IS_HOME_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HOME_TYPE))
/* 获取obj的类型,同时将其转换为Home,并返回指向HomeClass的指针 */