转载请注明出处 blog.csdn.net/pingf0 或www.cnblogs.com/pingf“

PART 2.

在正式开始GObject的学习之前,还要简单提一下大名鼎鼎的建立在GObject系统之上的桌面图形库Gtk,先来个最简单的程序看看。

#include <gtk/gtk.h>

int main( int argc, char *argv[])

{

GtkWidget *window;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_widget_show(window);

gtk_main();

return 0;

}

这段代码的作用其实就是显示一个啥都没有的窗口。

有些刚接触gtk的人觉得gtk的函式名总是很长,其实也是有它的原因的,后面再说。

如果我们将上面代码中的Gtk,gtk,GTK去掉,似乎会简明不少。

其实就是 声明window(窗口),new一个window,显示window 三步,当然最后进入一个循环 gtk_main 中。

除了函数名长了些之外,不难发现大小写,下划线的组合还蛮多的,这也是挺麻烦事情。

下面就这些冗长而又麻烦的事情,简单加以说明(就是我个人的理解…….XD),

GTK(不分大小写)其实就是表明了这个函式是gtk库提供的,它表明的是一个域,就像System.out.***之类,前面的一堆写起来也是挺麻烦的一样。

而大小写和下划线的搭配下面举例来说

GtkWindow 用于对象[构件]的声明

GTK_WINDOW 用于对象类型的转换

gtk_window_*** 用于与对象相关的函式的声明

这样的规则不是gtk说了算的,而是GType,GObject决定的,转而言之,一般的基于Glib的库都采用这样的规则,比如进来很流行的2.5D桌面图形库Clutter,里面构件的声明也遵循此规则。

如果想玩下Clutter,但又不懂linux,可以参考下面这篇博文,在win32上搭建Clutter的开发环境。

http://www.cnblogs.com/pingf/archive/2009/10/27/1590419.html

下面简单说下GObject实现的一些面向对象的机制(当然都是模拟的),

类型机制,

继承,

接口,

函式调用(普通,虚,纯虚,当然这需要你自己来理解),

类型转化(静态,动态,基础类型),

类型检测,

属性机制,

信号机制(signal,closure,accumulator…..)

。。。。。。

有很多东西其实平时是用不到滴【其实是目前我还没搞明白】,所以下面的代码集中说明如下一些东西

继承,

接口,

函式调用(普通,虚,纯虚)

函式(普通的,虚的)

信号机制(signal)

类型转化(静态)【动态的简单看了下,有时间的话也会写点……XD】

类型检测

属性机制

*未完待续*

转载于:https://www.cnblogs.com/pingf/archive/2009/11/20/1606616.html

使用C语言进行面向对象的开发--GObject入门[2]相关推荐

  1. 使用C语言进行面向对象的开发--GObject入门[5]

    转载请注明出处 blog.csdn.net/pingf0 或www.cnblogs.com/pingf 接上文 这一部分简要介绍下类的析构,或者成为终结. 还是多说几句,也算是对前文的补充 1.生成一 ...

  2. 用C语言实现面向对象的开发

    C语言的对象化模型 面向对象的特征主要包括: .封装,隐藏内部实现 .继承,复用现有代码 .多态,改写对象行为 采用C语言实现的关键是如何运用C语言本身的特性来实现上述面向对象的特征.1.1 封装 封 ...

  3. 【C语言】C 程序开发快速入门

    文章目录 1. C 程序开发快速入门 2. C 程序运行机制流程 3. 编译.链接和运行详解 4. C 程序开发注意事项 5. 如果想只生成目标 exe 文件,不想执行结果 1. C 程序开发快速入门 ...

  4. html是面向对象的开发语言,Web开发常用的6大编程语言和优势

    Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...

  5. 《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)...

    本节书摘来自异步社区出版社<C++ 开发从入门到精通>一书中的第2章,第2.1节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2 ...

  6. OO开发思想:面向对象的开发方法(Object oriented,OO)

    面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...

  7. 一步步分析-C语言如何面向对象编程

    这是道哥的第009篇原创 一.前言 在嵌入式开发中,C/C++语言是使用最普及的,在C++11版本之前,它们的语法是比较相似的,只不过C++提供了面向对象的编程方式. 虽然C++语言是从C语言发展而来 ...

  8. C语言到嵌入式Linux开发项目指导

    C语言到嵌入式Linux开发项目指导 第一阶段C语言 1.常量与变量,数据类型,数据类型转换,数据输入与输出: 2.C语言运算符,C语言操作符,C语言表达式,表达式优先级: 3.C语言流程控制,分支, ...

  9. c语言uint32_使C语言实现面向对象的三个要素,你掌握了吗?

    编排 | strongerHuang 微信公众号 | strongerHuang 不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单.随着应用需求和场景的变化,C语言的语法功能在不断 ...

最新文章

  1. web service
  2. java B2B2C Springboot仿淘宝电子商城系统-负载均衡之ribbon+feign
  3. Kubernetes的共享GPU集群调度
  4. C++ OpenGL透明纹理源码
  5. 读书,上学,上名校!!!!!
  6. Java变量声明在循环体内还是循环体外,你用哪一个?
  7. iZotope RX 9 for Mac(数字音频修复工具)
  8. java技术体系基础
  9. 在Vs2013下编译FreeCAD0.17源码
  10. 有关scm和check style的pom.xml文件
  11. 【资源分享】Go语言并发之道 [美] 凯瑟琳(Katherine Cox-Buday)著 PDF 下载
  12. PR短视频特效转场 快速画面分割视频转场过渡PR转场模板
  13. 【delphi】TMS_Component_Pack_v9.2.4.0中的TadvMemo 支持中文完美修改
  14. 用阿里云短信服务--通过Web接口发送短信
  15. ol+天地图+geoserver_教程:使用GeoServer发布离线地图服务(WMS)
  16. 带你了解磁盘驱动程序(xv6)
  17. Java调用被子类重写的方法
  18. getline()的使用详解
  19. 【转载】Tomcat崩溃事件
  20. 2022.1.9HCIP第五天笔记

热门文章

  1. 【原创】修改C#_WinForm设计中两个默认图标
  2. easiest approach for improving writing skills for ielts
  3. 【转】 关于寄存器ESP和EBP的一些理解
  4. 字符串周期--hdu 3746 Cyclic Nacklace
  5. Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
  6. 【Storm篇】--Storm并发机制
  7. Hadoop HA+Federation 高可用联邦模式搭建指南
  8. DNS服务搭建和正反区域解析
  9. 分布式计算互相sayhello
  10. 第九章 思科竞争谋略