C是面向过程,而C++是面向对象的
1.函数默认值
C++中函数传参时可以为缺省值,而C语言不支持,并且C++必须遵循从右向左赋初始值。
2.inline内联函数
叫做“更安全的宏”在调用点直接展开,不生成符号,没有栈帧的开辟回退,仅在Release
版本下生效。一般写入到到文件中。
3.函数重载
静多态:函数重载、函数模板,重载时必须考虑到函数名、参数个数、参数类型,重载时必须
在同意作用域下
4.const
C中的const叫只读变量,只是无法做左值得变量。c++中的const是真正的常量,但也有可能
退化为C语言的常量。
5.引用
引用的底层实现本身就是一个指针,引用在使用时直接就是指针的解引用。
6.malloc/free和new/delete
malloc是函数,而new是操作符
malloc需要进行强制类型转换,而new后面只需跟类型。
malloc需要计算所要开辟空间的大小,而new只需要在后面跟类型即可。
malloc需要判空处理,而new不需要,但new需要进行异常捕获。
new和delete在使用时会调用构造和析构函数,而malloc不用
new的效率比malloc低,因为new的底层实现是malloc。
malloc开辟在堆区,new开辟在自由存储区域。
7.作用域
C中只有全局、局部作用域,而C++中有类作用域、局部作用域、命名空间作用域。
C和C++的区别
最新推荐文章于 2021-09-24 15:22:14 发布