C与C++的真正区别,就是面向对象以及类概念的引进。正是因为这两个概念的引进,使得编程变得简单,编程的逻辑变得非常清晰。
用C编程很麻烦,首先要用著名的project把要编绎的C,H文件码一起,一个也不能遗漏。组织起来很麻烦。
C++,用类class封装。如,一个大型应用程序,其中有文件及字符编辑界面,可以用一个CFileEditClass类,图形描画CGraphDrawingClass,数据传输类CCommunicationClass,语法分析CExplainClass,轨迹计算类CContuarClass等等。
每个类是独立的。如CFileEditClass类,可以实现应用程序界面中的文件打开、保存、删除、传输、字符编辑等功能。可以安排一个人做。
每个类也是相互可引用的。如在图形描画中,可引用CFileEditClass中的文件打开成员,也可用轨迹计算类CContuarClass中的轨迹处理成员,生成描画数据。
C++除了可用C的libaray库函数处,也可用MFC的标准类库。MFC的标准类库容丰富,也很好用,几乎涉及windows、通讯、网络IO内存操作等所有编程要用的函数。
在出现问题时,我们很容易检查出是那个类出了bug,有针对性地进行检查。
面向对象的类封装、继承,是C++一大革命性的创举。
比如,我们要做六个页面,他们有共同的颜色色调,相同的大小,字体、字号一致等等共性,在C语言开发的,写一个公共的函数,来初始化每一个页面。
但对于C++,有一个更好的方法,那就是构建一个公共的父类,如CommonPropertySheet,在这个类中,除了以上的共有属性外,还可增加消息的传输,异常的处理等,用来解决各PropertySheet之间,以及与windows其它线程之间的消息传送,更好地实现多线程之间的数据协同。
C++还有更多的优点,如在字符串处理、通信处理、图像处理等上,更精确。我是1998年开始从C转到C++的。我觉得,不论是底层开发,还是windows的应用程序开发,只要环境允许,尽量使用C++类进行软件开发,一定会受益匪浅。
真正的区别在于:c语言什么事情都要你做,编译器只负责语法检查并最终生成机器码;c++很多事情可以让编译器帮你做,而且通常结果比自己做得更好。其实是否面向对象不是关键,c语言一样可以写出面向对象的代码,而是c++可以更方便让你用面向对象的思想进行编程。当然,c++同样也是可以以结构化语言的方式来写代码的。
要从编程语言的发展角度来看,c++兼容c的所有语法特性,并且引入了很多新的理念、概念,算是更高级的语言。比如支持类、模版,函数重载、异常处理等等,对写代码确实方便很多,代码也更容易写得健壮,容易扩展维护。当然你可以用c语言模拟出类似的功能,但得自己很苦逼去实现了。
其他的我倒不觉得有什么,说得库的问题,用的人多自然可选择的库就会丰富,其实c也很多库,只是c++可以在这个基础上有更多的选择。
说到效率,有些人笃信c的效率一定比c++高,其实差别不明显。只要你不用那些花里胡哨的特性,比如c++的多态、虚拟继承这些,我觉得效率没差。
C语言有很标准的函数库,可把功能相同的函数放在一个头文件中;C++的函数是一个整体。早期人们都是先接触的C,用C语言开发一些应用程序。几年后随着计算机硬件和操作系统升级,才开始逐步使用C++
c++最早是带类的c,最根本的区别就是一个从语言层支持class类,从而支撑起封装,继承特性。
c要实现的话,需要通过函数指针实现。
我觉得这个就是c++和c最根本的区别也是c++一开始诞生的原因。
页面更新:2024-04-03
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号