0.异常安全 C++没有内存回收机制,每次程序员new出来的对象需要手动delete,流程复杂时可能会漏掉delete,导致内存泄漏.于是C++引入智能指针,可用于动态资源管理,资源即对象的管理策略. 使用 raw pointer 管理动态内存时,经常会遇到这样的问题: 忘记delete内存,造成内存泄露. 出现异常时,不会执行delete,造成内存泄露. 下面的代码解释了,当一个操作发生异常时,会导致delete不会被执行: void func() { auto ptr = new Widge…