| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2280 人关注过本帖
标题:用OO的思想来写C程序[原帖内容已被清除...]
只看楼主 加入收藏
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
回复 19楼 Devil_W
还有这个JCOOP只是"模拟",所以本质上它不可能实现多态,
因为你把它完全展开后会发现它只不过是一堆结构体和函数指针而已.....
也正因此,你可以使用GCC直接编译.
但是写JCOOP的意义在于,使用它美化了一部分代码,使得设计类更加的像一些更为高级的语言(C++,JAVA)
尤其是类的构造与析构,会方便许多.


因为在JCOOP中所有类(堆上的)的使用都用的都是一个指针而已,
所以这样的类在转换时不会检测转换的错误,至于转换的结果,则符合地址靠前的原则.

当然JCOOP中还有一种类是在栈上的(以及用以表述继承关系)的时候,
其实就是
child {
    parent
    ....
}
这样的关系,转换的时候依旧遵循靠前的原则
而每个类的方法可以单独在一SHARE part中设计,这样就避免了每声明一个"类"时,分配过多的内存
用来存储函数指针.
著名的GObject(GNOME的基石之一)也是如此,因为C语言本身并没有这些机制
所以说只是一种"模拟",正像前面说的,是让你的C中设计"类"和JAVA等一样方便.

至于像泛型这类,如果你使用的是指针类型的,那么还是强制转换[并不会检测错误]
至于重载运算符,C语言本身就决定了无法通过宏和函数指针来实现,
而至于闭包等一些概念,也是不行的,当然你可以把函数指针的传递套着理解成类似的概念,
尽管这是不科学的.....


2010-07-26 01:11
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
呵呵,这个帖子有点意思~~

不过 D_W 说 C++ 可定制性强,我倒是有一定的同感。C++ 利用它极为复杂的語法,使得程序员可以对代码做相当细致的控制。虽然楼主说它隐藏了很多细节,但不是强迫我们使用。C++ 如果愿意,可以精雕细琢,打造每一个细节。不是什么语言都可以用的这么自由的。

不过现在机器快了,脚本语言在一定程序上都可以接受,只是做的那么细没什么太大意思而已。但是优雅这个字眼不是用来炫燿的,而是热血程序员最根本的追求。我看 D_W 就是那种热血类的,灵魂比较高尚,在很多问题面前是不会让步的~~
2010-07-26 01:11
pingf
Rank: 2
等 级:论坛游民
帖 子:33
专家分:66
注 册:2010-7-25
收藏
得分:0 
回复 22楼 pangding
呵呵,
对于C++隐藏的东西,学的多了自然就懂(我见过很多学了C++学了好久的,
    不明白构造与析构调用时的顺序的,不明白堆内存,栈内存的就更多了....),但是对于初学者并不是很好...
    而对于某些嵌入式的应用,即便是几个类的默认的隐式方法也可能导致问题的产生.
对于C++的语法,其实我觉的没有Ruby等好的(纯语法),ruby有很多"语法糖"
对于新兴的脚本语言,其实有的已经比较快了,速度早应该不是问题了,比如Lua(JIT),很多游戏都采用它作为脚本编程语言的.....
对于D_W,他肯定很热爱C++的,我也好久没有这么罗嗦了,呵呵,我早些时候也比较喜欢C++,但后来对于C++,就只爱Qt了....
2010-07-26 01:31
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
显然,你不应该把我跟那些人混为一谈。
2010-07-26 03:09
黑白世界
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-27 01:39
vs303791832
Rank: 2
来 自:地球
等 级:论坛游民
帖 子:87
专家分:12
注 册:2010-6-23
收藏
得分:0 
你们说得太深奥了.....

小白无敌,哈哈.......我成功了
2010-07-27 08:26
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用黑白世界在2010-7-27 01:39:27的发言:

看了那么多
我就武断的说几句
C++注定消亡 被新手遗弃
像Ruby此等中间胶水语言有存在的价值
C绝对会万年长青
当然 如果它能增强一些OOXX鸡毛蒜皮之类的
那就最好不过了 千万别大弄出另一个C++

至于高层之类的  就交给C#之流 就可以了

要怎么样没脑子的人,才能说这种没有脑子的论断。

C#,微软的垃圾,灭亡是迟早。

新手遗弃C++,注定这样的新手永远进不了犀利的公司。即便再写个几十年的UI.
2010-07-27 09:57
哥只是传说
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2010-7-18
收藏
得分:0 
以下是引用Devil_W在2010-7-27 09:57:06的发言:


要怎么样没脑子的人,才能说这种没有脑子的论断。

C#,微软的垃圾,灭亡是迟早。

新手遗弃C++,注定这样的新手永远进不了犀利的公司。即便再写个几十年的UI.
你还是用用C# 4.0好,领教一下C#的威力,C++只是小儿科的语言,很适合新手去玩。
2010-07-27 10:04
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用哥只是传说在2010-7-27 10:04:48的发言:

你还是用用C# 4.0好,领教一下C#的威力,C++只是小儿科的语言,很适合新手去玩。



我只能说,你很傻,很天真。

你这辈子都不能领悟C++ 独到的犀利。
2010-07-27 10:55
哥只是传说
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2010-7-18
收藏
得分:0 
以下是引用Devil_W在2010-7-27 10:55:15的发言:

 
 
 
我只能说,你很傻,很天真。
 
你这辈子都不能领悟C++ 独到的犀利。
C++犀利有何用,因为安全性太差,大公司一般不用。留给小公司偶而用用吧。
2010-07-27 11:13
快速回复:用OO的思想来写C程序[原帖内容已被清除...]
数据加载中...
 
   



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

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