记录目前我所见到的面试题目总结,不写答案上来,时不时考考自己是否能给出满分的答案?
后续有增加我会继续补充
一、cpp基础
cpp编译链接过程?
内存分区介绍一下?
cpp链接时符号冲突怎么解决?
C++内存分区
堆和栈的区别
cpp三大特性?
静态变量和全局变量、局部变量的区别、在内存上是怎么分布的?
指针和引用的区别?
常量指针和指针常量之间有什么区别
class与struct的区别?
内联函数inline与define的区别?
使用过explicit关键字吗?
什么是volatile关键字?
extern关键字是什么,有什么用
static与const的区别?
为什么静态成员变量需要在主函数或者类外部进行声明呢?
介绍一下公有继承、私有继承、保护继承?
介绍一下lambda函数?
怎么解决避免重复引用头文件?
C++11新特性有哪些?
二、多态&虚函数相关
什么是多态?
C++怎么实现多态?
简述一下 C++的重载和重写,以及它们的区别和实现方式
什么是虚函数?
虚函数怎么实现的?
虚函数表是什么?
虚函数和纯虚函数的区别?
构造函数为什么不能是虚函数?
如何解决菱形继承的问题
三、智能指针相关
什么是智能指针,C++有哪几种智能指针?
智能指针的实现原理是什么?
如何实现shared_ptr?
shared_ptr是线程安全的吗?
智能指针,共享指针和独占指针相互转换问题?
四、多线程相关
怎么创建多线程、多线程之间怎么通信
cpp中有哪些锁?
介绍一下cpp的几种锁管理机制,详细介绍一下
介绍一下lockgaurd与uniquelock的区别?
信号量如何实现呢?
cpp中如何实现自旋锁?
五、stl相关
就你所知,有哪些stl呢?
vector和list的区别?
vector的实现原理?
vector 底层原理和扩容过程?
push_back()和emplace_back()的区别?
map、unordermap的区别?
可延伸至set,unorderedset
碰到过迭代器失效的问题吗?如何解决?
STL里面哪个是用堆数据结构的?
优先队列的默认是最小堆还是最大堆?
六、内存分配相关
new与malloc的区别
delete 和 free 有什么区别?
malloc分配后的内存会立刻换回操作系统吗?
深拷贝与浅拷贝的区别?
七、构造函数相关
拷贝构造函数能有返回值吗?
什么是构造函数和析构函数?构造函数、析构函数可以是虚函数嘛?
那赋值构造函数呢?
赋值构造函数在返回的时候为什么通常要加上&
八、模板相关(问的少)
什么是模板函数、什么是函数模板?
九、内存泄漏相关
内存泄露怎么办?
如何检测?
什么是野指针?如何避免?
十、移动语义相关
移动语义有什么作用,原理是什么?
左值引用和右值引用的区别?
介绍一下move?
move一个全局变量会怎样?
介绍一下forward?
手撕环节
如何实现线程安全的单例
如何实现一个生产者消费者
实现c++当中的string类的拷贝构造函数与复制构造函数