C++ 进阶面试题共47篇

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

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

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

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

面试题:什么场景下使用锁?什么场景下使用原子变量?

在 C++ 多线程编程中,锁(如 std::mutex) 和 原子变量(如 std::atomic) 是两种常用的同步机制。它们各有优缺点,适用于不同的场景。以下是它们的对比以及适用场景...
程序百科的头像-程序百科程序百科35天前
0389

面试题:C++ 中 malloc 申请的内存,可以用 delete 释放吗?

在 C++ 中,malloc 申请的内存不可以用 delete 释放,反之亦然。malloc 和 delete 是两种不同的内存管理机制,它们的行为和实现方式有本质区别。 为什么不能混用...
程序百科的头像-程序百科程序百科35天前
0239

面试题:C++ 动态库和静态库的区别?

在 C++ 中,库(Library)是预编译的代码集合,可以被其他程序调用。库分为静态库(Static Library)和动态库(Dynamic Library),它们在链接方式、内存占用、更新和维护等方面有显著区别。 1....
程序百科的头像-程序百科程序百科36天前
0479

面试题:用过哪些 C++ 单元测试框架?都有什么优缺点?

在 C++ 开发中,单元测试是保证代码质量的重要手段。以下是几种常见的 C++ 单元测试框架及其优缺点: 1. Google Test (gtest) 优点: 功能强大:支持丰富的断言宏(如 EXPECT_EQ、ASSERT_TRUE ...
程序百科的头像-程序百科程序百科36天前
0418

面试题:用过哪些 C++ 日志框架?都有什么优缺点?

在 C++ 开发中,日志框架是记录程序运行状态、调试信息和错误信息的重要工具。以下是几种常见的 C++ 日志框架及其优缺点: 1. spdlog 优点: 高性能:spdlog 是一个非常快速的日志库,专为高性...
程序百科的头像-程序百科程序百科36天前
0508

面试题:请介绍 C++ 的 6 种内存序?

在 C++ 中,内存序(Memory Order)是与原子操作和多线程编程相关的重要概念。C++11 引入了 std::memory_order 枚举类型,用于指定原子操作的内存顺序。内存序决定了原子操作在多线程环境中的可...
程序百科的头像-程序百科程序百科35天前
0227

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

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

面试题:如何理解 C++ 中的 atomic?

在 C++ 中,std::atomic 是一个模板类,用于实现原子操作。原子操作是不可分割的操作,即在多线程环境中,一个线程执行原子操作时,不会被其他线程中断。std::atomic 提供了一种高效...
程序百科的头像-程序百科程序百科35天前
0537