
成员变量
auto仅用于变量定义时的类型推导,不能用于函数参数、模板形参、类成员变量及C++14前的返回类型;需初始化,不支持数组/函数类型直接声明;默认忽略顶层const与引用,保留需显式添加;是声明lamb...
必须用RAII(如std::lock_guard或std::unique_lock)管理std::mutex,禁用手动lock/unlock;多锁需用std::lock或std::scoped_loc...
Clang-Tidy可提升C++代码质量,通过静态分析检测错误并自动修复。支持命名规范、性能优化等规则,结合CMake生成compile_commands.json可精准分析,配置文件可定制检查项,如...
静态局部变量仅在首次执行到定义语句时初始化一次,后续调用保留上次值;其生命周期为整个程序运行期,但作用域仍限于函数内。
memset不能安全初始化非平凡类型对象,因其按字节填充会破坏构造函数、虚表等状态,导致未定义行为;应优先使用{}初始化、std::vector或newT[N]()等类型安全方式。
Doxygen是C++项目最主流的文档生成工具,需正确编写注释、配置Doxyfile并同步更新。1.安装后运行doxygen-g生成配置,doxygen执行构建;2.使用///或/**注释,配合@br...
初始化列表是C++中成员变量正确、高效初始化的必经之路,尤其对const、引用、无默认构造函数的成员及基类子对象,它是唯一合法方式;初始化顺序严格按声明顺序而非列表顺序。
thread_local是C++11引入的存储期说明符,用于声明线程局部变量,每个线程拥有独立副本,支持延迟初始化与自动析构,适用于避免锁、复用缓冲区及保存线程上下文等场景。
std::allocator核心接口必须实现allocate()、deallocate()、construct()、destroy()及value_type等类型别名;stateful分配器还需定义i...
浅拷贝是编译器默认的逐字节复制,对指针只复制地址,易导致doublefree、数据误改等问题;深拷贝需手动实现拷贝构造函数和赋值运算符,为动态资源分配新内存并复制内容,同时处理自赋值、异常安全等细节。