C++ 基础面试题共66篇

面试题:请介绍下 C++ 模板中的 SFINAE?它的原则是什么?

SFINAE(Substitution Failure Is Not An Error) 是C++模板编程中的一种重要机制,用于在模板实例化过程中根据类型的有效性选择不同的实现。SFINAE 的核心思想是:在模板参数推导过程中,如果...
程序百科的头像-程序百科程序百科36天前
0276

面试题:C++ 的 strcpy 和 memcpy 有什么区别?

在C++中,strcpy 和 memcpy 是两个常用的函数,用于复制数据。尽管它们的功能相似,但在使用场景和行为上有显著的区别。 1. strcpy 定义:strcpy 是用于复制字符串的函数...
程序百科的头像-程序百科程序百科36天前
03215

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

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

面试题:C++ 中堆内存和栈内存的区别?

在C++中,堆内存(Heap Memory) 和 栈内存(Stack Memory) 是两种不同的内存分配方式,它们在管理方式、生命周期、性能和用途上有显著的区别。 1. 栈内存(Stack Memory...
程序百科的头像-程序百科程序百科36天前
04514

面试题:C++ 的栈溢出是什么?

栈溢出(Stack Overflow) 是程序运行时的一种错误,发生在调用栈(Call Stack)的内存空间被耗尽时。栈是用于存储函数调用信息(如局部变量、返回地址等)的内存区域,其大小是有限的。当程序...
程序百科的头像-程序百科程序百科36天前
03210

面试题:什么是 C++ 的回调函数?为什么需要回调函数?

在C++中,回调函数(Callback Function) 是一种通过函数指针、函数对象(如 std::function)或 Lambda 表达式传递给其他函数的机制,允许在特定事件或条件发生时调用该函数。回调函...
程序百科的头像-程序百科程序百科36天前
05214

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

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

面试题:什么是大端序?什么是小端序?

大端序(Big Endian) 和 小端序(Little Endian) 是两种不同的字节序(Byte Order),用于描述多字节数据(如整数、浮点数)在内存中的存储方式。它们的区别在于字节的排列顺...
程序百科的头像-程序百科程序百科36天前
0395

面试题:C++ 中 include 和 include “a.h” 有什么区别?

在C++中,#include <a.h> 和 #include 'a.h' 是两种不同的包含头文件的方式,它们的区别主要在于编译器查找头文件的路径顺序。 1. #include <a.h> 用途:用于...
程序百科的头像-程序百科程序百科36天前
0499

面试题:C++ 是否可以 include 源文件?

在C++中,可以使用 #include 包含源文件(.cpp 文件),但不推荐这样做。以下是详细解释: 1. 为什么可以包含源文件? #include 是一个预处理指令,它的作用是将指定文件...
程序百科的头像-程序百科程序百科36天前
0327