| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1788 人关注过本帖
标题:我觉得我这次编的不错,真的。(不是提问,绝对不是!)
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复楼上,也没啥东西,是他自己屏蔽的,这点我也比较好奇。

呵呵,解释一下我笑的原因吧,C从来都是一个面向过程的结构化的语言,它完全没有OO的特征。用C实现OO,简直就是个笑话。
后来一想,也许是我错了,据我所知C++的编译器就是用C写的,OO或是PO,完全是一个认知角度的问题,也许人家说的是这一点呢?
一看到15楼的图片,我又笑了,原来是GObject啊,那是一个独立的自由库,一个对象框架,它不光应用于C,其它语言也可以用。
关于对象,那是由GObject实现的。
关于这个库我没有用过,因为我一直在用面向对象的语言,上学时用C++,后来用C#,这段时间在用java。
以下是维基百科中的一段评述。没别的意思,想怎么用是个人的事,我不干涉
尽管许多的 GObject 应用程序完全以 C 来撰写,但 GObject 系统可以很好地对应到许多语言,像C++、Java、Ruby、Python和 .NET/Mono等的原生对象系统。所以在为已经使用 GObject 框架写好的库创建语言绑定时,通常比较不会那么痛苦。

以 C 来撰写 GObject 代码时,却是相对痛苦。学习曲线十分陡峭,有高级面向对象语言经验的开发者可能会发现以 C 撰写 GObject 代码相当的乏味。举例来说,要继承一个类型(即使是继承 GObject)可能就需要撰写和(或)复制上百行的代码。虽然如此,不可否认地,GObject 可以为 C 的代码提供面向对象的功能。

GObject 应用程序在运行时期为类型和接口所创建的元对象提供了互相操作的良好支持。可互相操作的能力被使用在语言绑定上,还有用户界面设计应用程序(如Glade)上。Glade 允许加载提供放了Widget(组件,派生自GObject)的库,并且取得类型的属性列表、类型信息以及文件字符串。
还好奇一点,BlueGuy的智商是多少?

重剑无锋,大巧不工
2011-11-11 19:53
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 21楼 beyondyf
那么大一张图, 你只看到 GObject ?
http://zh.

GTK+使用C语言开发,但是其设计者使用面向对象技术。 也提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、D、Haskell、PHP和所有的.NET编程语言。
与其他很多部件工具箱不同,GTK+ 并不基于Xt。这一决策优劣互见:优点是GTK+ 可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。GTK+ 最早应用于X Window System,如今已移植至其他平台,诸如Microsoft Windows、DirectFB,以及Quartz在Mac OS X.
Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件;新的Glade-3不再直接支持生成编程语言源代码。
[编辑]外观和感觉

http://developer.

GTK+ is the primary library used to construct user interfaces in GNOME. It provides all the user interface controls, or widgets, used in a common graphical application. Its modern, object-oriented API allows you to construct attractive and sophisticated user interfaces without dealing with the low-level details of drawing and device interaction.

面向对象只是建模方式的一种,本质上和面向过程没什么区别

可能你并不认同 某种 c语言代码 是面向对象的,怎么看是个人的事,对与错都不重要。
我从来不认为 面向对象 是 "C++,后来用C#,这段时间在用java" 才有的。

c 语言实现面向对象确实很困难,需要丰富的设计经验.
其实写代码本身就很困难, 都需要丰富的设计经验...

用gtk作为例证其实没什么说服力,毕竟不是我的作品.
我也是只是了解,并一直学习中...

反正我一听到别人说 "c 语言是面向过程的语言" , 我就想笑...

[ 本帖最后由 BlueGuy 于 2011-11-11 21:37 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-11-11 20:51
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
是看语言对哪几编程方格提供了直接的支持,而不是说你可以用语言写什么样方格的代码。c当然能面向对象,可你写起来就不觉得有点蹩手么。
女孩子敲代码还是很不错的。

迭代的是人,递归的是神。
2011-11-11 21:41
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
请参照 15 楼的回帖

我就是真命天子,顺我者生,逆我者死!
2011-11-11 21:47
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
恩,初学者就要慢慢来,不怕多写几行程序,写完了我们可以优化程序

最重要的往往是算法。至于那些写大程序的高手能指教就指教,不能的也别妄加评论

兴趣是编程最好的老师
2011-11-11 23:00
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
楼主这代码写的确实挺不错的, 表示羡慕...

我猜的不错的话,楼主的源文件后缀名应该是.cpp,用的可能是 vc* 的编译器,
也就是说 把c代码 当作 c++ 代码编译, 建议把后缀名改为 .c
如果用的是 *nix 的编译器, 当我没说,我表示仰慕楼主

[ 本帖最后由 BlueGuy 于 2011-11-12 13:17 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-11-12 13:16
快速回复:我觉得我这次编的不错,真的。(不是提问,绝对不是!)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035137 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved