BIGO 面经C++总结

2024-04-23 16:08
文章标签 c++ 总结 面经 bigo

本文主要是介绍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++总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929261

相关文章

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元