
析构函数
C++中堆和栈的核心区别在于管理方式、使用方法和生命周期:栈由编译器自动管理,速度快但空间小;堆由程序员手动管理,空间大但易出错;此外还有全局/静态区、常量区和代码区。
手写单链表需定义节点结构(含数据域和next指针)并正确维护头指针(初始为nullptr);插入、删除、查找操作须注意指针顺序与边界检查;务必配对new/delete,避免野指针、内存泄漏和空指针解引...
Go中不用interface{}做事件参数,因会丢失类型信息导致运行时panic且IDE无法推导;应为每类事件定义具体结构体,编译期校验。
std::list是双向链表,不支持随机访问和下标操作,仅通过迭代器、front/back访问;插入删除为O(1)(需有效迭代器),splice实现零拷贝节点转移,迭代器仅在所指节点被erase时失效...
CopyElision是C++编译器直接在目标位置构造对象、跳过拷贝/移动操作的优化机制,C++17起对prvalue初始化等场景强制要求;它不调用拷贝/移动构造函数,故不可依赖其副作用。
RAII通过对象生命周期管理资源,确保构造时获取、析构时释放。std::fstream用于文件自动关闭,std::lock_guard实现锁的自动加解锁,智能指针如std::unique_ptr和st...
三五法则指析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符这五个特殊成员函数;定义其一通常需显式定义全部五个(或=default/=delete),因默认逐成员复制/移动会导致资源...
虚函数实现运行时多态,通过vtable和vptr支持动态绑定;纯虚函数定义抽象接口;析构函数通常须声明为virtual以防内存泄漏。
构造函数是C++中用于初始化对象的特殊成员函数,包括默认构造函数(无参或全默认参数)和拷贝构造函数(const引用单参),分别在对象创建和用同类型对象初始化时调用;编译器仅在未显式定义对应函数时隐式生...
RTTI是C++标准组成部分,含typeid、dynamic_cast和异常类型识别;dynamic_cast依赖vtable实现安全向下/横向转换,仅适用于多态类型,失败时指针返回nullptr、引...