| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2280 人关注过本帖
标题:用OO的思想来写C程序[原帖内容已被清除...]
只看楼主 加入收藏
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
 问题点数:0 回复次数:41 
用OO的思想来写C程序[原帖内容已被清除...]
删了原帖中的介绍,帖子变味儿了...
................................




[ 本帖最后由 pingf 于 2010-7-27 22:58 编辑 ]
搜索更多相关主题的帖子: 思想 
2010-07-25 18:13
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
呵呵,同样的题材太多了。这里有个比较有名的:
http://

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-25 19:20
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
ls说的ooc-lang,可以理解为另一门语言了(尽管它可以通过某个程序转换成c99的代码)
这有点像GObject中早期的GOBuilder以及现在的Vala,这和JCOOP有本质上的区别.

当然用C去进行OO开发的也早就有,比如GObject,但是这个虽然强大却不是很好用.

如果拿JCOOP跟ooc-lang相比,JCOOP简单的多;如果拿ooc-lang跟Vala比,ooc-lang又简单的多.
毕竟JCOOP仅仅是宏的集合,但这意味着纯c编译器就编译的,比如GCC,直接编译就行了

另外补充下,
用C写oo的方式一般有两种,一种通过函数以及指针的配合,一层一层的写用于"类"生成的函数......
这种方式的确很好,但是也有一个明显的缺点就是使用起来极其不方便....
另外一种方式就是通过宏来提供一个形式上的模拟,比如JCOOP,当然因为宏本身就有些缺点,所以.....
还要说一下GObject其实结合了上面两种方式,但是因为其的复杂性,使用起来依旧极度不方便,
特别是当你要是用它构造一个类时,
JCOOP本身的定位就是一个模板,所以设计之初重点考虑的就是简化类的设计,所以使用起来要简单的多.

最后,再补充下,使用JCOOP和SlickEdit配合起来也是非常方便的,SlickEdit对其解析的相当好....






2010-07-25 19:53
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
我明白楼主的意思了。

不过,如果不是在编译器级提供支持。这样的东西只能是极少数人的玩具。
就像C++的发展,从带类的C到C++编译器的出现。

这个东东用来提升个人功力是很不错的,但要想实现规模化使用。难。

以上个人看法,欢迎指正。
BTW:
还有这样东东,楼主不妨看看:
http://www.




举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-25 20:25
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 4楼 东海一鱼
不是有 Objective c 吗? 还挺流行的

我就是真命天子,顺我者生,逆我者死!
2010-07-25 20:28
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
回复 4楼 东海一鱼
呵呵,这个只是来"玩"C语言的,
并不期望会怎么规模化......
仅仅是因为个人的兴趣,想拿C去完成一些有意思的事情....
当然也期望有兴趣相投的多多参与更好,O(∩_∩)O~

2010-07-25 20:33
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
回复 5楼 BlueGuy
Objective-c的是水果整的,那是独立的一门语言,并不是c!
还有就是Objective-c是一门广受批评的语言,它的热更多的是源自
iPhone的盛行,以及基于Objective-c的cocoa框架的优良设计.
而其本身,让我来说是真的很不给力,了解一下是好的,但如果不是水果死忠,没有必要深入学习的.

不过从类的声明而言,JCOOP和Objective-c还有几分相似~~~


2010-07-25 20:41
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
我有了C++,为什么还需要你那个OO的C?
你还能说服我?
2010-07-25 20:54
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
回复 8楼 Devil_W
首先,我并不是说服谁类用这个,只是希望兴趣相投的人参与并使用.
另外c++是很强悍的,它比JCOOP强了十万八千倍!
但是正像Linus Trovalds一样,我对C++其不是很喜欢...
原因如下,
1.c++掩盖了过多的细节,但却没有诸如GC之类的东西
很多人学了相当长的一段时间也是仅仅知道基本的语法.而在对内存分配等方面
C++的编译器为我们隐藏了太多的细节,比如默认构造函数的调用,内存具体在何时分配等等细节问题,
程序员很多时候无从知晓,而C++本身又没有自动的垃圾回收机制.这就导致很多初级程序员的代码存在大量难以
维护的BUG.
2.繁琐的语法,不统一的标准
据说还没有哪个c++的编译器能完整的实现C++的所有语法,早期的VC 6对标准的支持有违差劲.
另外各厂家的编译器有很多差异,而C++的标准在一些关键点上并没有统一的规范,比如name mangling....
而像微软直流,又在其.Net平台下整了个C++/CLI,这对高手可能有些好处,但是却大大增加了初学者的负担.
因此我一般倾向于使用GCC那套免费的跨平台的东西
3.诡异的语法
其实C++的语法设计也是很不好的,引入了大量的语法结构.导致很多时候并不雅观.
比如泛型中出现的那个>>要多用个空格,一般的编译器才能正常识别.
4.语法不够简练
如果你学过设计模式,那么会发现用C++去实现各种设计模式比用JAVA去实现要累的多.
5.嵌入式应用不易普及
正式因为它的复杂,在低端嵌入式系统上很难普及应用
...blablabla.....


基于上面等的种种原因我个人仍旧比较喜欢纯C!
但是事实上学C的过程中不免接触到c++,这也是很多人把c跟c++混为一谈的一个主要原因,
比如纯c中并没有try...catch...,但有些讲纯c的书上却出现了这个.
如果你说C缺乏高级的语法,那么不妨试试JCOOP,如果你真的需要一些高级的
基于语言本身的东西的话,我个人比较喜欢Ruby和Scala.


还有就是C++的各种类库中,我个人还是有比较中意的,比如Qt就是我非常喜欢的的一个类库.


2010-07-25 21:16
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
另外还要补充的一句就是
像JCOOP这样的宏只是提供对OO机制的"模拟",而不是在C上实现了OO的机制!
所以JCOOP技术含量并不高,很容易入门,
但JCOOP本身是精心设计的,能保证其的美观和易用性......
如果有兴趣的朋友有何改进方案,可以电邮我或是给我留言.
2010-07-25 21:24
快速回复:用OO的思想来写C程序[原帖内容已被清除...]
数据加载中...
 
   



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

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