C++ 必考八股文汇总 精选

一、基础语法与类型

  1. C++ 中 const#define 的区别是什么?
  2. static 关键字在不同场景下的作用分别是什么?
  3. volatile 关键字的作用是什么,什么场景下使用?
  4. extern 关键字的作用是什么?
  5. sizeofstrlen 的区别是什么?
  6. C++ 中的引用和指针有什么区别?
  7. 左值和右值的区别是什么?什么是右值引用?
  8. nullptrNULL0 三者的区别是什么?

二、内存管理

  1. new / deletemalloc / free 的区别是什么?
  2. 内存泄漏是什么?如何检测和避免?
  3. 栈内存和堆内存的区别是什么?
  4. 什么是内存对齐?为什么需要内存对齐?
  5. 智能指针有哪几种?各自的使用场景是什么?
  6. shared_ptr 的引用计数是如何实现的?
  7. weak_ptr 解决了什么问题?
  8. unique_ptr 为什么不能拷贝?

C++面试常考题目类型都放入了专栏了:https://www.nowcoder.com/creation/manager/columnDetail/Mq7XWW

三、面向对象

  1. C++ 的三大特性是什么?分别解释一下。
  2. 构造函数和析构函数的调用顺序是什么?
  3. 拷贝构造函数和赋值运算符的区别是什么?
  4. 什么是深拷贝和浅拷贝?
  5. 虚函数的实现原理是什么(vtable / vptr)?
  6. 纯虚函数和抽象类是什么?
  7. 虚析构函数的作用是什么?什么时候必须用?
  8. 多重继承会带来哪些问题?如何解决菱形继承?
  9. overridefinal 关键字的作用是什么?
  10. 构造函数可以是虚函数吗?为什么?
  11. 对象的内存布局是怎样的(含虚函数表)?

四、模板与泛型

  1. 函数模板和类模板的区别是什么?
  2. 模板特化和偏特化是什么?
  3. typenameclass 在模板中的区别是什么?
  4. 什么是 SFINAE?有什么实际用途?
  5. 可变参数模板(variadic template)如何使用?

五、STL 容器与算法

  1. vector 的扩容机制是什么?
  2. mapunordered_map 的底层实现和区别是什么?
  3. listvector 的使用场景如何选择?
  4. deque 的底层结构是什么?
  5. setmultiset 的区别是什么?
  6. 迭代器失效的场景有哪些?
  7. std::sort 的底层算法是什么?时间复杂度是多少?
  8. emplace_backpush_back 的区别是什么?

六、C++11/14/17 新特性

  1. autodecltype 的区别是什么?
  2. Lambda 表达式的捕获方式有哪些?各有什么区别?
  3. 移动语义和完美转发是什么?
  4. std::move 的本质是什么?它真的移动了数据吗?
  5. constexprconst 的区别是什么?
  6. 范围 for 循环的底层实现原理是什么?
  7. std::thread 如何创建和管理线程?

七、并发与多线程

  1. mutexlock_guardunique_lock 的区别是什么?
  2. 什么是死锁?如何避免死锁?
  3. std::atomic 的作用是什么?和 mutex 相比有什么优劣?

全部评论

相关推荐

评论
1
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务