排序
面试题:C++ 中 volatile 关键字的作用?
在 C++ 中,volatile 关键字用于告诉编译器,被修饰的变量可能会被程序以外的因素(如硬件、多线程、信号处理等)修改,因此编译器不应对该变量进行优化(如缓存到寄存器或重排序访问顺序)。 1...
面试题:用过哪些 C++ 网络框架?都有什么优缺点?
在 C++ 开发中,网络框架是构建高性能网络应用的重要工具。以下是几种常见的 C++ 网络框架及其优缺点: 1. Boost.Asio 优点: 跨平台:支持 Windows、Linux、macOS 等平台。 高性能:基于事件驱...
面试题:C++ 中友元类和友元函数有什么作用?
在C++中,友元(Friend) 是一种机制,允许某个类或函数访问另一个类的私有(private)和保护(protected)成员。友元分为两种: 友元类(Friend Class) 友元函数(Friend Function) 1.&...
面试题:C++ 中 final 关键字的作用?
在 C++ 中,final 是一个用于限制类或虚函数进一步派生或重写的关键字。它的主要作用是增强代码的安全性和可维护性。 1. 用于类 当 final 用于类时,表示该类不能被继承。 语法: class Base fi...
面试题:C++ 中 include 和 include “a.h” 有什么区别?
在C++中,#include <a.h> 和 #include 'a.h' 是两种不同的包含头文件的方式,它们的区别主要在于编译器查找头文件的路径顺序。 1. #include <a.h> 用途:用于...
面试题:请介绍 C++ 中 unique_ptr 的原理?
std::unique_ptr 是 C++11 引入的一种智能指针,用于管理动态分配的对象生命周期。 它的核心特点是独占所有权(exclusive ownership),即同一时间只能有一个 std::unique_ptr 指向某个对象...
面试题:什么场景下使用锁?什么场景下使用原子变量?
在 C++ 多线程编程中,锁(如 std::mutex) 和 原子变量(如 std::atomic) 是两种常用的同步机制。它们各有优缺点,适用于不同的场景。以下是它们的对比以及适用场景...
面试题:C++ 中 malloc 申请的内存,可以用 delete 释放吗?
在 C++ 中,malloc 申请的内存不可以用 delete 释放,反之亦然。malloc 和 delete 是两种不同的内存管理机制,它们的行为和实现方式有本质区别。 为什么不能混用...
面试题:什么是内存对齐?为什么要内存对齐?
什么是内存对齐? 内存对齐是指数据在内存中的存储位置必须满足特定条件,通常是某个值的倍数(如 4 字节、8 字节等)。例如,一个 4 字节的整数通常需要存储在地址为 4 的倍数的位置。 为什么...
面试题:C++ 动态库和静态库的区别?
在 C++ 中,库(Library)是预编译的代码集合,可以被其他程序调用。库分为静态库(Static Library)和动态库(Dynamic Library),它们在链接方式、内存占用、更新和维护等方面有显著区别。 1....