当前位置: 首页 > 工具软件 > gobject_cpp11 > 使用案例 >

Glib2之gobject G_DEFINE_TYPE用法(一)

湛功
2023-12-01

1.main.c

#include <iostream>
#include <typeinfo>
using namespace std;
extern "C"
{
#include <glib.h>
#include <glib-unix.h>
#include <glib-object.h>
#include <stdio.h>

  typedef struct MyDemoPrivate{
    gchar *name;
    gint64 age;
  }MyDemoPrivate;

  typedef struct _MyDemo {
    GObject parent;
    MyDemoPrivate *priv;
  }MyDemo;

  //类结构体
  typedef struct _MyDemoClass {
    GObjectClass parent_class;
  }MyDemoClass;
}
//GType my_demo_get_type(void) G_GNUC_CONST;//my_demo_get_type将会使用宏G_DEFINE_TYPE去实现(G_DEFINE_TYPE(MyDemo,my_demo,G_TYPE_OBJECT)),其中的my通常表示命名空间,demo表示对象名字,get_type为固定字段
//G_DEFINE_TYPE用法
G_DEFINE_TYPE (MyDemo, my_demo, G_TYPE_OBJECT);
/*
 * G_DEFINE_TYPE 可以让 GObject 库的数据类型系统能够识别我们所定义的 MyDemo 类类型,
 * 它接受三个参数,第一个参数是类名,即 MyDemo;第二个参数则是类的成员函数名称的前缀,例如 my_demo_get_type 函数即为 MyDemo 类的一个成员函数,"my_demo"是它的前缀;第三个参数则指明 
 类似资料: