面试:cpp高频问题总结

记录目前我所见到的面试题目总结,不写答案上来,时不时考考自己是否能给出满分的答案?

后续有增加我会继续补充

一、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类的拷贝构造函数与复制构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值