C与C++ 的真正区别在哪里?

  1. 语言起源和发展:C是较早的一种编程语言,于1972年由Dennis Ritchie开发。C++则是在C的基础上发展而来,由Bjarne Stroustrup于1983年开始设计和开发。
  2. 面向对象编程支持:C++是一种支持面向对象编程的语言,它引入了类、继承、多态等概念,使得程序员可以使用面向对象的思维和技术来编写代码。C语言则是一种面向过程的编程语言,没有直接的面向对象编程支持。
  3. 标准库和功能扩展:C++标准库相比C语言的标准库更加丰富和强大,提供了许多用于容器、算法、字符串处理、输入输出等方面的工具和类。此外,C++还引入了异常处理、命名空间、模板等特性,以支持更高级和灵活的编程。
  4. 兼容性:C++是C的超集,这意味着大部分的C代码可以直接在C++中使用,而且C++可以直接调用C的函数和库。这使得现有的C代码可以逐步迁移到C++,并充分利用C++的功能和特性。
  5. 编程风格和习惯:由于C++具有更多的特性和功能,因此在编程风格和习惯上,C++倾向于更面向对象、更模块化、更严格的类型检查等。C语言则更加注重简洁性和低级别的控制。




C与C++的真正区别,就是面向对象以及类概念的引进。正是因为这两个概念的引进,使得编程变得简单,编程的逻辑变得非常清晰。


C++引进了类class,使得大型软件开发,可以做到分工协作,组装,调试容易,bug容易厘清。

用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语言开发的,写一个公共的函数,来初始化每一个页面。

但对于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

标签:区别   编译器   语法   应用程序   函数   轨迹   特性   异常   效率   概念   语言   代码   功能   文件   标准   财经

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top