条款6:析构函数里对指针成员调用delete
为什么呢?这样可以形成递归析构,使得每个类只管理自身的内存,简单易维护。奇怪的是,我曾经写过一个比较复杂的代码,析构函数递归调用会导致错误(忘了是什么错误),但是显示地用for、while遍历却没问题,或许是栈造成地。如果想提高效率,还是自己把握吧。
条款7:预先准备好内存不够的情况
为什么呢?提高安全性。同时作者提供了一些处理内存异常的范例代码。
条款8: 写operator new和operator delete时要遵循常规
为什么呢?要假扮,当然要扮得像点,否则就找扁了。
条款9: 避免隐藏标准形式的new
为什么呢?作者谈的是避免class内的new函数定义隐藏了全局new。
条款10: 如果写了operator new就要同时写operator delete
为什么呢?做戏要做全套。