C语言和C++的区别

首先,C++几乎是兼容C语言的,然后再来谈区别,总结起来就是一下几点。

C++可以理解为对C语言的扩充,C++几乎是兼容C语言的,而C++在C语言的基础上多了很多东西(特性)


面向对象 封装,继承,多态
为了适配面向对象,新的内存分配操作符new delete
为了适配面向对象,新的输入输出方式 cin cout 流
。。。。。。

一些函数、运算符的区别

malloc  calloc  new
free   delete

1、面向对象

C++在语言层面上是遵循面向对象的基本要素的,包括封装,继承,多态。

C++支持一种称为函数对象的对象,即重载对象的()运算符,调用时即可进行类似A a; a(); 这种类似函数式的调用。

2、运算符重载

C++支持运算符重载,如+号本来的意义仅存在于数值之间的求和,而标准库的std::string重载了+号,可以用来拼接两个字符串。

3、模版

C++支持模版,包括模版类、模版函数,模版参数类型推断等,差不多就是可以在编译时生成类型,比如代码中只有vector、int、double,但通过组合,vector和vector生成了新的不同的类型。

4、标准库

C++标准库涵盖了C标准库,不过头文件被挪至形似以c开始的头文件中,如和对应。

IO库不一致,C++11新增了线程及同步的一些函数。

STL标准模版库是C++经常会使用到的一个稳定且优秀的标准库之一,里面包含了容器及算法等的通用实现。当然还有像Boost这种优秀的准标准库。

5、异常处理

严格地说,C在语言上是不支持异常的,一般是靠函数返回值、goto语句等来解决异常,

C++支持异常处理,支持**try {} catch{}**语法,能够在运行时检测异常,包括除零等操作。

6、其它

除了以上提到的,大部分还是来自语言本身的差异,虽说C++是兼容C的,但语法上还是有部分差异,包括类型转换如static_cast,const_cast等,在此不一一列举了。

7、结语

就语言来说,C++无疑比C更复杂,也更难掌握,会C不一定就对C++学的易如反掌,反倒是会C++的一定是会C的,C++11和14已经带来了语言更多的特性,我估计马上推出的17标准和将来的新标准会和C的差距会越来越大,目前个人觉得C++的确最近迈得有点快

你可能感兴趣的:(个人知识梳理,c++,c语言,开发语言)