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

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

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

面试题:C++ 中 shared_from_this 的作用是什么?它有什么优点?

shared_from_this 是 C++ 标准库中的一个工具,用于在类的成员函数中安全地获取一个指向当前对象的 std::shared_ptr。它通常与 std::enable_shared_from_this 一起使用。 ...
程序百科的头像-程序百科程序百科26天前
02715

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

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

面试题:C++ 中为什么要引入 make_shared?它有什么优点?

std::make_shared 是 C++11 引入的一个工具函数,用于创建并返回一个 std::shared_ptr,它封装了动态内存分配和 std::shared_ptr 的构造过程。 引入 std::make_shared 的主要目的是为了提...
程序百科的头像-程序百科程序百科26天前
0389

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

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

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

std::weak_ptr 是 C++ 标准库中的一种智能指针,用于解决 std::shared_ptr 的循环引用问题。它本身不拥有对象的所有权,而是通过观察 std::shared_ptr 来访问资源。理...
程序百科的头像-程序百科程序百科26天前
0409

面试题:C++ 中 final 关键字的作用?

在 C++ 中,final 是一个用于限制类或虚函数进一步派生或重写的关键字。它的主要作用是增强代码的安全性和可维护性。 1. 用于类 当 final 用于类时,表示该类不能被继承。 语法: class Base fi...
程序百科的头像-程序百科程序百科28天前
05010

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

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

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

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

面试题: C++ 中 explicit 的作用?

在 C++ 中,explicit 是一个用于修饰构造函数或转换运算符的关键字,它的作用是禁止隐式类型转换,防止编译器自动执行不期望的转换,从而提高代码的安全性和可读性。 1. 用于构造函数 当 explic...
程序百科的头像-程序百科程序百科28天前
0317