使用C语言进行面向对象的开发--GObject入门[2]
转载请注明出处 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]相关推荐
- 使用C语言进行面向对象的开发--GObject入门[5]
转载请注明出处 blog.csdn.net/pingf0 或www.cnblogs.com/pingf 接上文 这一部分简要介绍下类的析构,或者成为终结. 还是多说几句,也算是对前文的补充 1.生成一 ...
- 用C语言实现面向对象的开发
C语言的对象化模型 面向对象的特征主要包括: .封装,隐藏内部实现 .继承,复用现有代码 .多态,改写对象行为 采用C语言实现的关键是如何运用C语言本身的特性来实现上述面向对象的特征.1.1 封装 封 ...
- 【C语言】C 程序开发快速入门
文章目录 1. C 程序开发快速入门 2. C 程序运行机制流程 3. 编译.链接和运行详解 4. C 程序开发注意事项 5. 如果想只生成目标 exe 文件,不想执行结果 1. C 程序开发快速入门 ...
- html是面向对象的开发语言,Web开发常用的6大编程语言和优势
Web前端是互联网时代软件产品研发中不可缺少的一种专业研发角色,所有用户终端产品与视觉和交互有关的部分,都是Web前端工程师的专业领域.Web开发常用的6大编程语言和优势你知道多少,北大青鸟的老师带您 ...
- 《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)...
本节书摘来自异步社区出版社<C++ 开发从入门到精通>一书中的第2章,第2.1节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2 ...
- OO开发思想:面向对象的开发方法(Object oriented,OO)
面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...
- 一步步分析-C语言如何面向对象编程
这是道哥的第009篇原创 一.前言 在嵌入式开发中,C/C++语言是使用最普及的,在C++11版本之前,它们的语法是比较相似的,只不过C++提供了面向对象的编程方式. 虽然C++语言是从C语言发展而来 ...
- C语言到嵌入式Linux开发项目指导
C语言到嵌入式Linux开发项目指导 第一阶段C语言 1.常量与变量,数据类型,数据类型转换,数据输入与输出: 2.C语言运算符,C语言操作符,C语言表达式,表达式优先级: 3.C语言流程控制,分支, ...
- c语言uint32_使C语言实现面向对象的三个要素,你掌握了吗?
编排 | strongerHuang 微信公众号 | strongerHuang 不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单.随着应用需求和场景的变化,C语言的语法功能在不断 ...
最新文章
- web service
- java B2B2C Springboot仿淘宝电子商城系统-负载均衡之ribbon+feign
- Kubernetes的共享GPU集群调度
- C++ OpenGL透明纹理源码
- 读书,上学,上名校!!!!!
- Java变量声明在循环体内还是循环体外,你用哪一个?
- iZotope RX 9 for Mac(数字音频修复工具)
- java技术体系基础
- 在Vs2013下编译FreeCAD0.17源码
- 有关scm和check style的pom.xml文件
- 【资源分享】Go语言并发之道 [美] 凯瑟琳(Katherine Cox-Buday)著 PDF 下载
- PR短视频特效转场 快速画面分割视频转场过渡PR转场模板
- 【delphi】TMS_Component_Pack_v9.2.4.0中的TadvMemo 支持中文完美修改
- 用阿里云短信服务--通过Web接口发送短信
- ol+天地图+geoserver_教程:使用GeoServer发布离线地图服务(WMS)
- 带你了解磁盘驱动程序(xv6)
- Java调用被子类重写的方法
- getline()的使用详解
- 【转载】Tomcat崩溃事件
- 2022.1.9HCIP第五天笔记