本文主要是介绍BIGO 面经C++总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、C++和C语言最大的区别是什么
大体上:C是面向过程的语言,而C++是面向对象的语言。
面向过程:类调用时需要实例化,开销比较大,单片机、嵌入式开发。面向对象:封装、继承、多态,易维护、易复用、易扩展
C++更是拓展了面向对象设计的内容,如类Class、继承、虚函数等、以及一个非常强大的C++标准模板库STL,另外一个Boost库现在也归属C++标准库。
具体:
1)动态内存管理:C语言通过malloc和free来进行堆内存的分配和释放,而C++是通过new和delete来管理堆内存的
malloc只负责开辟内存,没有初始化功能;开辟内存需要传入字节数,如malloc(100);表示在堆上开辟了100个字节的内存.
new不但开辟内存,还可以进行初始化,如new int(10);
int *p1 = (int *)malloc(sizeof(int));// 指定大小,且类型转换
int *p2 = new int(10);// 初始化了
2)struct和class:class是对struct的扩展,struct默认的访问权限是public,而class默认的访问权限是private。C++中,struct关键字不仅可以用来定义结构体,它也可以用来定义类, 在C语言中struct定义的变量中不能有函数,而在C++中可以有函数。
3) C++函数默认值: int FUN(int a = 10);代表没有传参调用的时候,自动给a赋一个10的初始值。但C没有。
4) 函数重载:由于参数类型不同可以构成重载compare(int a,int b) compare(double a,double b)
5)inline内联函数:只有C++有,直接写在头文件中。
2、面向对象:三大特点:封装、继承、多态。
封装:代码模块化。类可以把自己的数据和方法只让可信的类或者对象访问private public protected,隐藏细节
继承与虚继承:代码复用。编写新的类,既能共享其基类,又能根据需要覆盖或添加行为。扩展已存在的代码模块
多态(虚函数):一个接口多种实现。在运行时根据对象的动态类型来
这篇关于BIGO 面经C++总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!