垃圾回收
线程安全的对象生命期管理
单例
对象二段式构造
销毁很难
对象池(工厂模式)
shared_ptr/weak_ptr
“大部分用c写的上规模的软件都存在一些内存方面的错误,需要花费大量的精力和时间把产品稳定下来”。
c++里可能出现的内存问题大致有这么几个方面:
1、缓冲区溢出
2、空悬指针/野指针
3、重复释放
4、内存泄漏
5、不配对的new[]/delete
6、内存碎片
正确地使用智能指针能很轻易地解决前面5个问题,解决第6个问题需要另的思路。
observer模式
垃圾回收的方式虽然很多,但主要可以分为两大类:
引用计数
跟踪处理
《深入理解c++11新特性》5.2.3 垃圾回收的分类