C++ 新特性面试题共25篇

面试题:请介绍 C++ 中 shared_ptr 的原理?shared_ptr 线程安全吗?

std::shared_ptr 是 C++ 标准库中的一种智能指针,用于管理动态分配的对象生命周期。它通过引用计数机制实现多个 std::shared_ptr 共享对象的所有权。理解 std::shared_ptr...
程序百科的头像-程序百科程序百科34天前
0457

面试题:请介绍 C++ 中 unique_ptr 的原理?

std::unique_ptr 是 C++11 引入的一种智能指针,用于管理动态分配的对象生命周期。 它的核心特点是独占所有权(exclusive ownership),即同一时间只能有一个 std::unique_ptr 指向某个对象...
程序百科的头像-程序百科程序百科34天前
0239

面试题:什么是 C++ 中的 auto 和 decltype?

auto 和 decltype 是 C++11 引入的两个关键字,用于简化代码和提高代码的可读性。它们的主要作用是自动推导变量的类型,但它们的用途和行为有所不同。
程序百科的头像-程序百科程序百科34天前
02812

面试题:C++ 中为什么要使用 nullptr 而不是 NULL?

在C++中,nullptr 是C++11引入的关键字,用于表示空指针。与传统的 NULL 相比,nullptr 具有以下优势: 1. 类型安全 NULL 的问题: 在C++中,NULL 通常被定义为 0...
程序百科的头像-程序百科程序百科36天前
0345

面试题:C++ 中为什么要使用 std::array?它有什么优点?

在C++中,std::array 是C++11引入的一个容器类,用于表示固定大小的数组。与传统的C风格数组相比,std::array 提供了更多的功能和安全性。以下是使用 std::array 的主要原...
程序百科的头像-程序百科程序百科36天前
04814

面试题:C++ 的 function、bind、lambda 都在什么场景下会用到?

在C++中,function、bind和lambda是用于处理函数对象和回调的强大工具,各自有不同的应用场景。 1. std::function std::function 是一个通用的函数包装器,可以存储、复制和调用任何可调用对象...
程序百科的头像-程序百科程序百科36天前
02813

面试题:C++ 中类定义中 delete 关键字和 default 关键字的作用?

在 C++ 中,delete 和 default 是两个用于控制类成员函数行为的关键字。它们通常用于显式地管理类的特殊成员函数(如构造函数、析构函数、拷贝构造函数、赋值运算符等)的生成和使用。 1. delet...
程序百科的头像-程序百科程序百科36天前
0438

面试题:C++ 中 enum 和 enum class 的区别?

在 C++ 中,enum 和 enum class 都用于定义枚举类型,但它们有显著的区别,主要体现在作用域、类型安全和隐式转换方面。 1. 作用域(Scope) enum(传统枚举): 枚举值是暴露在枚举类型所在的...
程序百科的头像-程序百科程序百科36天前
02714

面试题:C++ 中 using 和 typedef 的区别?

在 C++ 中,using 和 typedef 都用于定义类型别名,但 using 的功能更强大且更灵活。以下是它们的区别和具体用法: 1. 基本功能 typedef: 用于定义类型别名,语...
程序百科的头像-程序百科程序百科36天前
0256

面试题:C++ 什么场景下需要用到移动构造函数和移动赋值运算符?

在 C++ 中,移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment Operator)是 C++11 引入的重要特性,用于优化资源管理,特别是在涉及动态内存分配或昂贵资源(如文件句柄、网...
程序百科的头像-程序百科程序百科36天前
03813