6.7. 总结

第5章中,我们深入探讨了标准智能指针的正确用法。而在本章中,我们“亲自动手”,编写了简化版的unique_ptr<T>和shared_ptr<T>实现。需要再三强调的是,这仅仅是出于教学目的 —— 使用的标准库供应商提供的实现必定更加完善(功能更全面、性能更优、测试更充分等)。

本章我们还探索了自定义智能指针的可能性,特别是基于三种不同策略实现的策略化dup_ptr<T>,用于选择对象复制算法。这些示例旨在证明:

在章节尾声,我们研究了一些相对简单但实用的“轻量级”智能指针,特别适合作为函数边界(通常是参数类型)的类型标记,通过类型系统隐式表达语义要求,而非强制调用方显式维护这些约束——毕竟人为维护难免疏漏。

当然,内存管理不仅限于智能指针。下一章我们将探索new、new[]、delete和delete[]操作符的工作原理、自定义实现方法及其应用场景。