[C.C++] c语言c 的区别,c语言和c 具体有哪些区别?

45 0
Honkers 昨天 23:08 | 显示全部楼层 |阅读模式

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

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++的确最近迈得有点快

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行