(纯干货)面试 | C++面试宝典
点击左上方蓝字关注我们

# 干了这碗鸡汤
别为难自己,活得像你自己就行了
-- 东野圭吾
- const的作用有哪些,谈一谈你对const的理解? 
- 描述char*、const char*、char* const、const char* const的区别? 
- 指针常量和常量指针有什么区别? 
- static的作用是什么,什么情况下用到static? 
- 全局变量与局部变量的区别? 
- 宏定义的作用是什么? 
- 内存对齐的概念?为什么会有内存对齐? 
- inline 内联函数的特点有哪些?它的优缺点是什么? 
- 如何用C 实现 C++ 的面向对象特性(封装、继承、多态) 
- memcpy怎么实现让它效率更高? 
- typedef和define有什么区别? 
- extern有什么作用,extern C有什么作用? 
- 如何避免野指针? 
- 如何计算结构体长度? 
- sizeof和strlen有什么区别? 
- 知道条件变量吗?条件变量为什么要和锁配合使用? 
- C语言和C++有什么区别? 
- struct和class有什么区别? 
- extern "C"的作用? 
- 函数重载和覆盖有什么区别? 
- 谈一谈你对多态的理解,运行时多态的实现原理是什么? 
- 对虚函数机制的理解,单继承、多继承、虚继承条件下虚函数表的结构 
- 如果虚函数是有效的,那为什么不把所有函数设为虚函数? 
- 构造函数可以是虚函数吗?析构函数可以是虚函数吗? - 面试系列之C++的对象布局【建议收藏】 
- 什么场景需要用到纯虚函数?纯虚函数的作用是什么? 
- 了解RAII吗?介绍一下? - RAII妙用之计算函数耗时 - RAII妙用之ScopeExit 
- 类的大小怎么计算? 
- volatile关键字的作用?什么时候需要使用volatile关键字 
- 如何实现一个线程池?C++线程池的实现之格式修订版 
- 了解各种强制类型转换的原理及使用? 
- 指针和引用有什么区别?什么情况下用指针,什么情况下用引用? 
- 一般什么情况下会出现内存泄漏?怎么用C++在编码层面尽量避免内存泄漏。 
- unique_ptr如何转换所有权? 
- 谈一谈你对面向对象的理解 
- 什么场景下使用继承方式,什么场景下使用组合? 
- new和malloc有什么区别? 
- malloc的内存可以用delete释放吗? 
- malloc出来20字节内存,为什么free不需要传入20呢,不会产生内存泄漏吗? 
- new[]和delete[]一定要配对使用吗?new[]和delete[]为何要配对使用? 
21. C++11新特性你都了解多少?
- 了解auto和decltype吗?一文吃透C++11中auto和decltype知识点 
- 谈一谈你对左值和右值的了解,了解左值引用和右值引用吗? 
- 了解移动语义和完美转发吗?左值引用、右值引用、移动语义、完美转发,你知道的不知道的都在这里 
- 了解列表初始化吗?学会C++11列表初始化 
- 平时会用到function、bind、lambda吗,都什么场景下会用到?搞定c++11新特性std::function和lambda表达式 
- 对C++11的mutex和RAII lock有过了解吗?c++11新特性之线程相关所有知识点 
- 对C++11的智能指针了解多少,可以自己实现一个智能指针吗?c++11新特性之智能指针 源码分析shared_ptr实现之修订版 
- enum 和 enum class有什么区别? 
- C++直接使用数组好还是使用std::array好?std::array是怎么实现的? 
- std::vector最大的特点是什么?它的内部是怎么实现的?resize和reserve的区别是什么?clear是怎么实现的? 
- deque的底层数据结构是什么?它的内部是怎么实现的? 
- map和unordered_map有什么区别?分别在什么场景下使用? 
- list的使用场景?std::find可以传入list对应的迭代器吗? 
- string的常用函数 
- 分别写出饿汉和懒汉线程安全的单例模式 
- 说出观察者模式类关系和优点 
- 说出代理模式类关系和优点 
- 说出工厂模式概念和优点 
- 说出构造者模式概念 
- 说出适配器模式概念 
- 进程和线程的区别?深度好文|面试官:进程和线程,我只问这19个问题 
- 操作系统是怎么进行进程管理的? 
- 操作系统是如何做到进程阻塞的? 
- 进程之间的通信方式有哪些? 
- 什么是上下文切换,操作系统是怎么做的上下文切换? 
- 线程是如何实现的? 
- 线程之间私有和共享的资源有哪些? 
- 一般应用程序内存空间的堆和栈的区别是什么? 
- 进程虚拟空间是怎么布局的?10张图22段代码,万字长文带你搞懂虚拟内存模型和malloc内部原理 
- 虚拟内存是如何映射到物理内存的?了解分页内存管理吗?操作系统内存管理,你能回答这8个问题吗? 
- 产生死锁的必要条件有哪些?如何避免死锁? 
- 什么是大端字节,什么是小端字节?如何转换字节序? 
- 信号和信号量的区别是什么? 
- 锁的性能开销,锁的实现原理? 
- 了解CPU的Cache吗?如何写一个高效的多维矩阵乘法?如何利用CPU Cache写出高性能代码,看这些图就够了! 
- gcc hello.c 这行命令具体的执行过程,内部究竟做了什么?gcc a.c 究竟经历了什么? 
- 程序一定会从main函数开始运行吗? 
- 如何确定某个函数有被编译输出? 
- 动态链接库和静态链接库的区别是什么?Linux 为什么要动态链接?与静态链接的区别是什么? 
END
整理不易,点赞支持一下吧↓
