C++ 基础面试题共66篇

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

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

面试题:C++ 中可以使用 delete this 吗?

是的,在 C++ 中可以使用 delete this,但需要非常小心,因为它是一种高风险的操作。delete this 的核心思想是对象在成员函数中自我销毁。虽然这种技术在某些特定场景下有用,但必须遵循严格的...
程序百科的头像-程序百科程序百科37天前
03410

面试题:C++ 中 jthread 和 thread 的区别?

在 C++20 中引入了 std::jthread,它是 std::thread 的增强版本,主要区别在于 std::jthread 提供了更安全和更方便的线程管理功能,特别是自动线程回收和协作中断支持...
程序百科的头像-程序百科程序百科37天前
03210

面试题:C++ 中 new 和 malloc 的区别?delete 和 free 的区别?

在 C++ 中,new/delete 和 malloc/free 都用于动态内存管理,但它们有显著的区别: 1. new 和 malloc 的区别 语言: new 是 C++ 的运算符。 malloc 是 C ...
程序百科的头像-程序百科程序百科37天前
05410

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

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

面试题:什么是内存对齐?为什么要内存对齐?

什么是内存对齐? 内存对齐是指数据在内存中的存储位置必须满足特定条件,通常是某个值的倍数(如 4 字节、8 字节等)。例如,一个 4 字节的整数通常需要存储在地址为 4 的倍数的位置。 为什么...
程序百科的头像-程序百科程序百科37天前
0479

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

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

面试题:C++ 中 char、const char、char* const、const char* const 的区别?

在 C++ 中,char*、const char*、char* const 和 const char* const 是四种不同的指针类型,它们的区别在于指针本身和指向的数据是否可以被修改。以下是它们的详细解释和区别: ...
程序百科的头像-程序百科程序百科37天前
0488

面试题:C++ 中值传递和引用传递的区别?

在 C++ 中,值传递和引用传递是两种不同的参数传递方式,它们在性能、内存使用和语义上有显著区别。以下是它们的详细对比: 1. 值传递(Pass by Value) 定义 值传递是指将实参的值复制一份传递...
程序百科的头像-程序百科程序百科37天前
0388

面试题:C++ 中四种类型转换的使用场景?

在 C++ 中,类型转换(Type Casting)用于将一种数据类型转换为另一种数据类型。C++ 提供了四种类型转换运算符:static_cast、dynamic_cast、const_cast 和 reinterpret_cast。每种类型转换都有...
程序百科的头像-程序百科程序百科37天前
0558