C++面试题更新 2026-08-05

在C++11标准中,有哪些被广泛使用的语言新特性?

技术原理

考察说明

考查对C++11核心新特性的掌握广度与理解深度,以及能否结合实践说明其价值。

回答思路

  1. 【回答框架 1】C++11引入了auto类型推导,可根据初始化表达式自动推断变量类型,简化冗长类型声明;decltype用于获取表达式类型,常用于模板编程。
  2. 【回答框架 2】新增范围for循环,可直接遍历容器或数组,代码更简洁;nullptr取代NULL表示空指针,避免整数与指针重载歧义。
  3. 【回答框架 3】智能指针auto_ptr被弃用,新增shared_ptr、unique_ptr和weak_ptr,分别实现共享所有权、独占所有权和弱引用,解决资源管理及循环引用问题。
  4. 【回答框架 4】移动语义与右值引用(&&)配合std::move实现资源转移,避免深拷贝开销,显著提升容器和临时对象的性能;完美转发用std::forward。
  5. 【回答框架 5】lambda表达式允许定义匿名函数对象,支持捕获外部变量,广泛用于STL算法回调;同时新增了std::thread等并发编程支持。
  6. 【关键点 1】核心特性包括auto、decltype、范围for、nullptr、智能指针、移动语义、lambda、并发库等。
  7. 【关键点 2】智能指针中unique_ptr独占所有权,shared_ptr引用计数共享所有权,weak_ptr不增加计数。
  8. 【关键点 3】右值引用实现移动构造与移动赋值,转移资源而非拷贝,提升性能。
  9. 【易错点 1】移动语义不保证总是更快,对小型类型如int,直接拷贝可能更高效。
  10. 【易错点 2】shared_ptr存在循环引用导致内存泄漏风险,需用weak_ptr打破。