
空指针
std::bad_alloc是new表达式分配失败时抛出的异常,由operatornew检测到分配失败后主动throw,反映C++标准库层面分配失败而非单纯系统内存耗尽,常见于堆耗尽、内存碎片、自定义...
const变量必须初始化,否则编译错误;const成员函数不可修改非mutable成员;mutable是唯一例外;const指针与指针const需区分;const_cast仅用于原始对象非常量的场景。
std::format比printf更类型安全,因其在编译期进行类型推导、参数匹配和格式验证,不匹配即报错;支持自定义类型特化formatter、空指针安全、宽字符/UTF-8/chrono原生支持,...
Passbyvalue,thenmove是一种C++11后推荐的参数传递惯用法:函数参数按值传入(Tx),再用std::move(x)赋值给成员;它统一处理左值(拷贝构造)和右值(移动构造),避免重载...
引用必须初始化且不可重绑定,指针可为空或后期赋值;sizeof和typeid对引用返回所引类型的属性,指针则返回地址相关属性;引用传参避免拷贝但非const引用不接受临时量。
未定义行为(UB)指标准完全不约束后果,编译器可任意优化、崩溃或静默出错;典型场景包括数组/指针越界、空指针或悬垂指针解引用、二次释放、有符号整数溢出等。
浅拷贝仅复制指针值,导致多对象共享同一内存,引发use-after-free或doublefree;深拷贝需重载拷贝构造、赋值运算符和析构函数,手动分配并复制内存;现代C++推荐用vector、str...
策略模式优于ifelse因其支持开闭原则、便于测试和扩展;通过统一接口、注册表和安全执行机制实现解耦,避免硬编码、类型不安全及并发问题。
Go中需显式检查指针是否为nil再解引用,因nil指针解引用会直接panic;所有可能为nil的指针(如函数返回、map查找、结构体字段等)都必须判空,常见场景包括json.Unmarshal后、HT...
reflect.TypeOf()获取接口底层类型需先判空,返回reflect.Type;指针需.Elem()取元素类型;Kind()判容器类别,Name()仅对命名类型非空;泛型用(*T)(nil)....