本文讲解 C++ 函数重载的 3 条规则:参数类型、个数、顺序不同即可重载。同时剖析重载决议规则与默认参数混用会触发歧义的原因,附最小可运行示例,帮你一次写对、不踩编译错误,适合刚入门或复习巩固时对照练习。
讲清 C++ 内存泄漏的三条排查主线:用 valgrind 在本地精准定位未释放的块、用 RAII 加智能指针在代码层预防、在无法装工具的环境重载 new 和 delete 做分配计数,附可运行命令与示例,帮你既定位又预防泄漏。
本文系统讲清 C++ 三种智能指针的区别与用法:unique_ptr 管独占、零开销、只能移动;shared_ptr 管共享、靠引用计数自动释放;weak_ptr 只观测、用于打破循环引用。文中还给出 double free 反例、常见误区与失败排查思路,帮助你把智能指针用对,在编译期到运行初期就拦下大部分内存泄漏。
C++智能指针按所有权选择:单一所有者用unique_ptr,多个共同所有者用shared_ptr,只观察不拥有用weak_ptr。优先使用make_unique和make_shared,避免从同一裸指针构造多个shared_ptr。循环引用用weak_ptr打断。函数参数只在需要延长寿命时传shared_ptr,否则传引用或裸指针。