排序
面试题:请介绍 C++ 中 unique_ptr 的原理?
std::unique_ptr 是 C++11 引入的一种智能指针,用于管理动态分配的对象生命周期。 它的核心特点是独占所有权(exclusive ownership),即同一时间只能有一个 std::unique_ptr 指向某个对象...
面试题:什么场景下使用锁?什么场景下使用原子变量?
在 C++ 多线程编程中,锁(如 std::mutex) 和 原子变量(如 std::atomic) 是两种常用的同步机制。它们各有优缺点,适用于不同的场景。以下是它们的对比以及适用场景...
面试题:用过哪些 C++ 日志框架?都有什么优缺点?
在 C++ 开发中,日志框架是记录程序运行状态、调试信息和错误信息的重要工具。以下是几种常见的 C++ 日志框架及其优缺点: 1. spdlog 优点: 高性能:spdlog 是一个非常快速的日志库,专为高性...
面试题:C 和 C++ 的区别?
C 和 C++ 是两种广泛使用的编程语言,C++ 是 C 的超集,意味着 C++ 包含了 C 的大部分特性,并在此基础上增加了许多新特性。以下是 C 和 C++ 的主要区别: 1. 编程范式 C: 支持过程式编程...
面试题:C++ 中 char、const char、char* const、const char* const 的区别?
在 C++ 中,char*、const char*、char* const 和 const char* const 是四种不同的指针类型,它们的区别在于指针本身和指向的数据是否可以被修改。以下是它们的详细解释和区别: ...
面试题:C++ 中值传递和引用传递的区别?
在 C++ 中,值传递和引用传递是两种不同的参数传递方式,它们在性能、内存使用和语义上有显著区别。以下是它们的详细对比: 1. 值传递(Pass by Value) 定义 值传递是指将实参的值复制一份传递...
面试题:C++ 中四种类型转换的使用场景?
在 C++ 中,类型转换(Type Casting)用于将一种数据类型转换为另一种数据类型。C++ 提供了四种类型转换运算符:static_cast、dynamic_cast、const_cast 和 reinterpret_cast。每种类型转换都有...
面试题:什么是 C++ 的运算符重载?
C++ 中的运算符重载(Operator Overloading)是一种允许用户自定义类类型对象的运算符行为的特性。通过运算符重载,可以使自定义类型的对象像内置类型一样使用运算符(如 +、-、*、/ 等)。 1. ...
面试题:C++ 中野指针和悬挂指针的区别?
野指针(Wild Pointer) 定义:野指针是指未初始化或指向已释放内存的指针,其值是随机的或无效的。 产生原因: 未初始化:指针声明后未赋值,指向随机地址。int* ptr; // 未初始化,ptr 是野指...
面试题:C++11 中有哪些常用的新特性?
C++11 是 C++ 语言的一次重大更新,引入了许多新特性,极大地提升了代码的简洁性、安全性和性能。 以下是 C++11 中常用的新特性: 1. 自动类型推导(auto) 作用:编译器自动推导变量的类型。 ...