C++与C的区别

一、总体的不同

C++实在C的基础上发展而来,C++是兼容C的,包含了C的所有特性,另外增加了新的特性。
C++是面向对象的语言,抽象出对象模型与所要解决的问题相契合。通过对对象状态的控制,来解决问题。

C 是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。
C++不单单提供了C中的宏、指针、结构、数组和函数,此外还有私有和保护型成员、函数重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、模板、异常、名字空间,等等。

二、细节上的不同

C++不同于C的部分包含:

  • class:虽然C语言也有结构体struct,但是它更多的侧重于数据机构,侧重数据的组织。虽然struct在++中也支持class的个各种特性,但是很少用struct去替代class。它们两个一个不同在于class默认成员的访问是private,而struct是public。

  • template:模板属于泛型编程,泛型编程使得代码独立于特定的数据类型,可以大大减少代码量。

  • overload:重载是C语言中没有的,在一些代码中经常看到external “C",这是表示以C语言方式编译。因为重载是通过编译时,在函数明后加上函数参数类型来生成函数名实现的,而C语言则不是,所以如果要给C调用,就要加上extern "C"。

  • 除了以上几点,还有其他,例如引用、异常等。

可以将C++分为4个层次:

1、C:C++实在C语言的基础上发展而来的。
2:Object-Oriented C++:这是C++中不同于C的部分,这里主要指面向对象。
3:Template C++:C++中的泛型编程。
4:STL:这是一个标准模板库,它用模板实现了很多容器、迭代器和算法,使用STL往往事半功倍。

猜你喜欢

转载自www.cnblogs.com/narjaja/p/9294687.html