当前位置: 首页 > 面试经验 >

百度c++一面面经

优质
小牛编辑
167浏览
2023-03-28

百度c++一面面经

第一部分:c++语言基础

1、介绍一下c++的多态
2、运行时多态与编译时多态的区别?
3、c++的静态多态是怎么做到的?为什么函数名相同却可以调到不同的实现呢?
4、函数返回值类型不同也能实现重载吗?
5、两个一模一样的函数,一个使用const修饰,一个不使用const修饰,这两个函数可以进行重载吗?
6、const修饰函数起到了什么作用?哪些变量不能修改?
7、const除了修饰函数,还可以修饰什么?
8、顶层const和底层const的区别
9、指针和引用有什么区别?
10、对同一个变量的指针和引用进行sizeof操作,会有什么区别吗?
11、指针为什么会是4个字节,一定是4个字节吗?对指针做sizeof的结果与什么相关?
12、继续回到动态多态,构造函数可以是virtual吗?为什么不可以是virtual?
13、虚表指针是什么时候初始化的?
14、不考虑使用场景,除了构造函数,给所有函数都声明为virtual的,可以这样做吗?或者推荐这么做吗?有什么负面影响吗?
15、介绍一下static关键字都有什么作用?都可以修饰什么?分别起到什么作用呢?function实现里面对一个局部变量定义static可以吗?
16、c++单例模式,都有哪些实现?预加载和延迟加载各自都有什么问题?都存在安全问题吗?
17、预先加载有什么缺点吗?
18、有两个使用预先加载的单例类,一个类A一个类B,类B的初始化依赖于类A的初始化完成,使用预先加载的方式可以保证能够完成吗?类A类B在两个不同的文件里面(c++对不同文件(编译单元)里面定义的static变量初始化的顺序有保证吗?)不能够做到的话,这种情况知道怎么解决吗?
19、在一个函数内部定义一个static变量,不对其进行加锁,有线程安全的保证吗?c++11以前没有,c++11以后有了,通过c++11语言标准进行保证的。
20、c++11里面用到了哪些东西?
21、引用坍缩的概念有了解吗?(指的就是forward解决的问题,右值引用变成左值的情况)
22、智能指针用过哪些?
23、unique_ptr有哪些特性?
24、shared_ptr有哪些特性?
25、shared_ptr保证线程安全吗?为什么不是线程安全的?
26、vector的扩容过程?
27、vector size和capacity的区别?
28、有什么方法能够避免vector的动态扩容过程呢?

第二部分:操作系统

1、进程和线程有什么区别?
2、哪些资源是线程独占的?
3、线程死循环会导致所在进程(单线程进程和多线程进程)出现什么问题,有什么影响?出现假死现象(一定会出现假死吗?)
CPU会飙升吗?
4、线程崩溃会导致进程崩溃吗?一定会导致进程崩溃吗?
5、线程崩溃之后会使用什么方式通知进程呢?

第三部分:计算机网络

1、TCP、UDP可以绑定相同的端口吗?多个TCP进程可以绑定同一个端口吗?
2、什么情况下,可以重新利用这个端口?
3、介绍一下time_wait是一个什么状态,为什么需要这个状态,有什么作用?
4、time_wait状态会带来什么副作用吗?
5、同步IO和异步IO介绍一下?

做题:

LeetCode:剑指offerⅡ76
LeetCode:剑指offer 35



#面经##秋招#
 类似资料: