C++ 基础面试题共66篇

面试题:指针和引用的区别是什么?

指针和引用是C++中用于间接访问变量的两种机制,尽管它们有相似之处,但在使用和特性上有显著区别。以下是它们的主要区别: 1. 定义与初始化 指针: 指针是一个变量,存储另一个变量的内存...
程序百科的头像-程序百科程序百科46天前
0388

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

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

面试题:C++ 中 define 和 const 的区别?

在 C++ 中,#define 和 const 都可以用于定义常量,但它们的实现方式、作用范围和使用场景有显著区别。以下是它们的详细对比: 1. #define 定义:#define 是预处理指令,...
程序百科的头像-程序百科程序百科37天前
03811

面试题:C++ 什么场景下需要用到移动构造函数和移动赋值运算符?

在 C++ 中,移动构造函数(Move Constructor)和移动赋值运算符(Move Assignment Operator)是 C++11 引入的重要特性,用于优化资源管理,特别是在涉及动态内存分配或昂贵资源(如文件句柄、网...
程序百科的头像-程序百科程序百科37天前
03813

面试题:C++ 中 sizeof 和 strlen 的区别?

在 C++ 中,sizeof 和 strlen 是两个常用的操作符/函数,但它们的作用和用法完全不同。以下是它们的详细区别: 1. sizeof 作用:sizeof 是一个编译时操作符,用于计算数据...
程序百科的头像-程序百科程序百科37天前
0387

面试题:什么是 C++ 的移动语义和完美转发?

在 C++ 中,移动语义和完美转发是两个重要的特性,分别用于优化资源管理和实现泛型编程。以下是它们的详细解释: 1. 移动语义(Move Semantics) 什么是移动语义? 移动语义是 C++11 引入...
程序百科的头像-程序百科程序百科37天前
0385

面试题:什么是 C++ 的运算符重载?

C++ 中的运算符重载(Operator Overloading)是一种允许用户自定义类类型对象的运算符行为的特性。通过运算符重载,可以使自定义类型的对象像内置类型一样使用运算符(如 +、-、*、/ 等)。 1. ...
程序百科的头像-程序百科程序百科37天前
0378

面试题:C++ 中 list 的使用场景?

在 C++ 中,std::list 是标准模板库(STL)提供的一种双向链表容器。它的特点是支持高效的插入和删除操作,但在随机访问方面性能较差。以下是 std::list 的主要特点和使用场景:...
程序百科的头像-程序百科程序百科37天前
03613

面试题:介绍 C++ 中三种智能指针的使用场景?

在 C++ 中,智能指针是用于自动管理动态内存的工具,可以避免内存泄漏和悬空指针等问题。 C++11 引入了三种主要的智能指针:std::unique_ptr、std::shared_ptr 和 std::weak_ptr。 以下是它们...
程序百科的头像-程序百科程序百科37天前
03513

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

在 C++ 中,std::thread 提供了两种管理线程生命周期的方式:join() 和 detach()。它们的核心区别在于线程的执行与主线程的关系以及资源的释放方式。 1. join() 功能: 阻...
程序百科的头像-程序百科程序百科37天前
0347