C和C++语言的区别

C和C++语言的区别:

这是我复习C和C++语言时做的几点总结,不妥之处,敬请大神指正。

1、C是面向结构化的设计语言,C++在C基础上增加了面向对象的支持和面向对象的程序设计方法,支持封装、继承、多态。C++可定义类,C中没有类的概念。
2、C的结构仅可包含数据成员,C++扩展了结构,可以包含函数成员,也可以指定成员的访问控制符(private,public,protected),总之C++中结构和类非常类似,差别仅在于结构成员默认是public的,而类成员默认是private的。
3、C语言不支持函数默认参数(调用时可省略的参数),而C++支持。
4、C中变量必须在函数体内前部或语句块内前部定义(不考虑全局变量的情况),而C++变量可在任何需要的地方才定义。如for(int  i=0; i<10; i++)这行中的i在C中错误,而C++中是正确的(i仅在for循环中有效)。
5、C语言动态内存分配使用malloc函数和free函数,C++除了支持malloc和free外,增加了new操作符和delete操作符,支持普通变量和对象的动态分配,功能更加强大。
6、C中没有布尔型数据类型,而C++中有bool数据类型(取值true,false),C语言从C99标准开始才有了bool类型。
7、C输入输出方面(包括标准设备、文件的输入输出),C++在保留C的I/O功能基础上,增加了面向对象的I/O功能,即可以通过流对象实现输入输出,并且提供了格式化输入输出的流操纵算子。
8、在函数参数传递方面,C语言只能按值传递,C++语言还支持按引用传递。
9、C++支持内联函数,早期C语言不支持内联函数,而从C99标准后inline才被扩展到C语言,所以在支持C99标准的编译器中才可以使用inline。
10、C不支持函数重载,而C++支持函数重载。
11、C++中定义结构、联合、枚举变量时可分别省略关键字struct、union、enum,如(struct) Student stud; (union) number num;(enum) weekday workday; 括号内是C++可省略的关键字,而在C中不可省略。
12、C++中使用try、throw和catch处理异常,C中没有这样的异常处理机制,C中异常处理方法参见https://www.cnblogs.com/vimsk/archive/2010/12/11/1901698.html。

猜你喜欢

转载自blog.csdn.net/ikaoni/article/details/83240059