第6章 智能指针的实现原理

第5章中,重点探讨了标准库提供的智能指针,特别是最重要的两种:unique_ptr<T>和shared_ptr<T>。这些类型是现代C++开发者工具箱中珍贵而重要的工具,恰当使用它们能让程序比大多数手工实现的替代方案更精简、高效且简洁。

本书旨在讨论C++程序中的内存管理方法。本章我们将实现简化版的unique_ptr<T>和shared_ptr<T>,展示如何编写基础但可用的智能指针版本。我们强烈建议在实践中使用标准库版本(至少在生产代码中),它们经过充分测试、优化并被大量开发者验证有效。我们在此实现“自制”的目的,是为了帮助读者了解此类类型的实现:毕竟仍有一些公司因使用C++11之前的编译器,某些场景下需要开发与标准智能指针类似,但略有差异的变体版本。

接下来我们将研究标准智能指针未覆盖的特定场景,这些场景可能因为实现足够简单(用户可自行实现),或过于特殊(适合通过第三方库实现),亦或尚未形成明确的标准化路径。

本章主要内容包括:

通过本章学习,我们将更好地掌握如何实现语法上类似指针但能明确所有权语义的类型。这些技术大多也可应用于其他问题领域(无论是否与内存管理相关)。

听起来是个不错的计划,对么?让我们开始吧!