GObject [二] 简单封装一个类

 

简单说,GObject就是一个让c语言实现面向对象的工具。或者是让GObject子类化的过程

以下就是步骤:

1、在.h文件中包含<glib-object.h>

2、在.h文件中创建实例结构体和类结构体,以封装一个类。

3、在.h文件中定义P_TYPE_T宏,声明p-t-get-type函数。

  • p:项目缩写
  • T:名称
  • 比如: HW_TYPE_DLIST

4、在.c文件中调用G_DEFINE_TYPE宏,产生类型注册代码.

实例:

hw-dlist.h文件内容

#ifndef HWDLIST_H
#define HWDLIST_H

#include <glib-object.h>

#define HW_TYPE_DLIST (hw_dlist_get_type());

typedef struct _HWDListNode HWDListNode; 
struct _HWDListNode {
	HWDListNode *prev;
	HWDListNode *next;
	void *data;
};

typedef struce _HWDList HWDlist;
struct _HWDList {								//实例结构体 
	GObject parent_instance;  	//这里的GObject 是GObject的实例结构体 
	HWDListNode *head;
	HWDListNode *tail;
};

typedef struce _HWDListClass HWDListClass;		//类结构体 
struct _HWDListClass {
	GObjectClass parent_class;	//这里的GObjectClass 是GObject的类结构体 
	
};

// GType hw_dlist_get_type(void);
 
#endif

// 以上的实例结构体和类结构体合起来就可以成为一个类,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值