粮草征收维的专栏

1,C++有类,C没有

所以,C++比较适合在代码量大,框架结构复杂,适合使用面向对象设计的项目

也就是应用类项目和框架类项目

2,C++有重载,C没有

同样的函数名,根据不一样的参数被传递到不一样的过程

让代码看起来更人性化(只是看起来而已,慎用)

3,C++的结构体可以定义成员函数,C不能

其实我个人很少在结构体中定义函数,如果这样的话,为什么不设计成类

不过,确实有一点,在一些数据存储交换的对象中,定义一个结构体的构造函数,可以省去memset之类的结构体过程

4,C++的函数中变量可以定义在任意位置,C的旧标准是只能定义在函数的前半部,也就是只能在逻辑代码前

如果使用GCC,除非指定C99标准或者更高的标准(std=c99),要不然函数必须被硬生生设计成两部分

前面:定义变量,后面:写逻辑代码

所以,你无法自由的写了一半的函数后,再定义一个变量

也无法for(int i = 0; i < 100;i++);

更无法依赖作用域划分带来的好处,如,,不同的{}块内,定义同样变量互不干扰

5,C函数编译后的符号与C++不一样

这一点是与重载相关的,

同样一个函数,可以根据不同的参数有不同版本,那每一个版本名字是不是要不一样?

所以,注意extern “C" 的使用

6,C++有参数的默认值,C没有

可以少传几个变量,省敲几次键盘,省时

但是与重载配合使用时,如果设计不当也会带来恶果

7,C++可定义引用类型,C不能

函数的某个参数类型是引用而不是指针时,

至少有一个好处,就是不用判断指针是否为空

8,C++要求标准库自带容器和相关算法,C没有

C++ stl中有vector,map等大量容器和相关操作算法

而在C标准库中没有,只能找第三方开源实现或者自己实现

9,C++有很多个版本的依赖于编译器的扩展,从而带来很多特性,C一般比较统一

比如微软编译器的RTTI实现,可以做动态类型识别

10,C++可以使用new,delete操作内存,C没有

有了new delete配合面向对象的析构函数,简化了许多内存管理

11,C++有,static_cast,dynamic_cast,reinterpret_cast,const_cast等操作符,C没有

有了这些操作符,让类型转换变得更安全一点点

12,,,13,,,欢迎各位补充

有事者,事竟成;破釜沉舟,百二秦关终归楚;苦心人,

粮草征收维的专栏

相关文章:

你感兴趣的文章:

标签云: