回复 8楼 gzliujie5
C++能做到的,C一样能做到,即使同样是用C++,同一个程序都可以用不同的代码组成,思维不同决定代码的不同!
前面我还是比较认同的,但看到这里
C没有私有只有公有,C是结构化编程,和C++比C的结构化编程有很大的缺陷.
假如有一种新式电视机需要设计,面向对象编程只需要将原有的电视机类继承过来,再给它增加几个新功能就可以了.
但是对于面向结构来说.
由于它不能将电视机看作一个整体,一个对象,它只能将电视机分解成一堆螺丝,集成电路和显像管.因此对于它来说这可是一件非常复杂的差事.
它需要重新组合这些螺丝,集成电路和显像管,必要的情况下,甚至需要重新设计这些零件.这还不是最坏的,假如老板又叫你再生产一台老式的
电视机,那么这些代码又得重写了,代码的可重用性非常差.
结构化编程又一个缺陷就是不能实现多态!(此处省略1万字)
还有一个缺陷就是比如C++面向对象会将具有相同或相似性质的对象划分成一类,比如说将电视机这个对象划分到电视机类中去,将电脑这个对象
划分到电脑类中去.每个对象都拥有自己的数据,比如说电视机这个对象拥有音量,色彩,频道,而电脑则拥有视频,图片,音乐,动画等数据.
电脑不能干预电视机的数据,电视机也不能干预电脑的数据.
如果换成C语言面向结构的编程思想来设计电脑和电视机那就全变了,
结构化方法的本质是功能分解,它只能将复杂的功能分解成诺干可以
实现的小功能.所以在它眼力,没有电视机和电脑,只有一个个小小的螺丝钉或者集成电路.由于不能将电视机和电脑划分开,所以也不能区分
某个螺丝钉究竟是电脑还是电视机的.这样的缺陷显而易见,程序员在设计一个螺丝钉或者集成电路的时候是非常得心应手的,但是批量生产
电视机和电脑时就晕头了.
由于结构化方法无区分电视机和电脑,数据也只能是公有的.这样电视机可以任意访问和修改电脑的数据,电脑也可以访问和修改电视机的数据
,一旦程序的某个地方出现错误,就会产生无法预料的错误,这些错误往往是不易被发现和纠正的,程序员往往需要花费大量的时间和精力来纠正
这个错误.由此可见,结构化方法开发的软件,其稳定性和可维护性是相当差.
--摘子<<零起点学通C++>>范磊.
C++能做到的,C一样能做到
总结一下就是c能做到c++能做到,c++能做到的c不一定能够做到!(比如多态等等等等..)
还有比如用c在原有的程序中添加几个新功能需要几天的时间,c++只需要1小时都不到.可能说了有点夸张,但是他们的区别大致就是这么这夸张.
[
本帖最后由 xg5699 于 2011-8-14 19:29 编辑 ]