C++、C的区别

参考:https://www.douban.com/group/topic/22414944/

参考:http://www.cnblogs.com/ckings/p/3632997.html

继承关系是C->C++,C++是C的超集,C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行,C++也称为带类的C,在C的基础上增加了许多面向对象的概念。虽然是C的扩展,但不意味着C功能不如C++,最牛的操作系统是用C写的。

C语言

是一个结构化编程语言,层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位(bit)一级的运算。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可以用于系统软件的开发,也适用于应用软件的开发。此外,C语言还具有效率高、可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

C++

C++是在C的基础上改进后的一种编程语言,于1983年由贝尔实验室推出,是C语言的直接继承人,面向对象的先驱,不是完全面向对象的语言,java是完全面向对象的语言。C++既保留了C语言的灵活性,简洁高效和接近汇编底层语言等特点,又增加面向对象的特点。用C++写的代码可读性好,运行效率高。

在C语言的基础上,C++增加下面的内容:

  1. 类型检查更加严格
  2. 增加了面向对象机制
  3. 增加了泛型编程的机制
  4. 增加了函数重载和运算符重载
  5. 异常处理机制
  6. 标准模板库STL

C++兼容了C语言的绝大部分内容,但还是有些差异的

  1. C/C++中动态管理内存的方法不一样,C使用malloc/free函数,而C++除此之外还有new/delete关键字
  2. C中的struct和C++中的类,C++中的类是C所没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行进一步扩展,使struct在C++中可以和class一样当做类使用,唯一和class不同的地方是struct的成员默认访问修饰符是public,而class默认是private。
  3. C++中有引用,而C中没有
  4. C++全部变量的默认链接属性是外链接,而C是内链接
  5. C中用const修饰的变量不可以用在定义数组时的大小,但是C++用const修饰的变量可以(如果不进行&解引用的操作的话,是存放在符号表的,不开辟内存)

C++优点

  1. 代码可读性好
  2. 可重用性好
  3. 可移植
  4. C++设计成无需复杂的程序设计环境
  5. 运行效率高,高效安全
  6. 语言简洁,编写风格自由
  7. 提供了标准库STL
  8. 面向对象机制

C++的缺点

  1. 相比java来说,没有垃圾回收机制,可能引起内存泄露
  2. 内容较多较难,学起来相对困难

猜你喜欢

转载自blog.csdn.net/summer00072/article/details/81163056