C++ 进阶面试题共47篇

面试题:请介绍一下 C++ 的返回值优化?

C++ 中的**返回值优化(Return Value Optimization, RVO)和命名返回值优化(Named Return Value Optimization, NRVO)**是编译器优化技术,用于减少临时对象的创建和拷贝,从而提高程序的性能...
程序百科的头像-程序百科程序百科36天前
0355

面试题:C++ 中如何使用线程局部存储?它的原理是什么?

在 C++ 中,线程局部存储(Thread Local Storage, TLS) 是一种机制,允许每个线程拥有自己的变量实例,即使这些变量在代码中看起来是全局或静态的。线程局部存储的原理和用法如下: 1.&nb...
程序百科的头像-程序百科程序百科36天前
03414

面试题:C++ 的 string 内部使用的是堆内存还是栈内存?

在 C++ 中,std::string 的内部实现通常使用堆内存来存储字符串数据。这是因为字符串的长度通常是动态变化的,栈内存的大小有限且不适合存储可能很大的动态数据。 具体说明: 栈内存:栈内存用...
程序百科的头像-程序百科程序百科35天前
03413

面试题:C++ 中为什么 new[] 和 delete[] 一定要配对使用?

在 C++ 中,new[] 和 delete[] 必须配对使用,因为它们的行为与 new 和 delete 有本质区别。混用 new[] 和 delete 或 new ...
程序百科的头像-程序百科程序百科35天前
03115

面试题:C++ 的 async 使用时有哪些注意事项?

在 C++ 中,std::async 是一个用于异步执行任务的工具,它封装了线程创建和任务调度的细节,使得异步编程更加简单。然而,使用 std::async 时需要注意一些关键问题,以避免潜在...
程序百科的头像-程序百科程序百科35天前
03012

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

在 C++ 开发中,网络框架是构建高性能网络应用的重要工具。以下是几种常见的 C++ 网络框架及其优缺点: 1. Boost.Asio 优点: 跨平台:支持 Windows、Linux、macOS 等平台。 高性能:基于事件驱...
程序百科的头像-程序百科程序百科36天前
02810

面试题: C++ 函数调用的原理是什么?什么是栈帧?

C++ 函数调用的原理 在C++中,函数调用的原理涉及以下几个关键步骤: 参数传递: 调用函数时,参数按顺序压入栈中(从右到左或从左到右,取决于调用约定)。 如果参数是对象,可能会调用拷贝构...
程序百科的头像-程序百科程序百科36天前
0287

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

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

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

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

面试题:C++ 中未初始化和已初始化的全局变量放在哪里?全局变量定义在头文件中有什么问题?

C++ 中未初始化和已初始化的全局变量放在哪里? 在 C++ 中,全局变量(包括未初始化和已初始化的)的存储位置取决于它们的初始化状态: 已初始化的全局变量: 存储在数据段(Data Segment)中的...
程序百科的头像-程序百科程序百科36天前
02612