内存管理不当是 C++ 程序中最常见的问题。许多此类问题归根结底是,对代码的哪一部分或哪个实体拥有特定内存做出了错误的假设。由此导致了内存泄漏、访问未分配的内存、内存使用过度,以及其他难以调试的问题。现代 C++ 提供了一套内存所有权的惯用法,综合使用这些方法,开发者可以清晰地表达他们在内存所有权方面的设计意图。这反过来使得编写能够正确分配、访问和释放内存的代码变得容易得多。
本章涵盖以下主题:
什么是内存所有权和资源所有权?
设计良好的资源所有权具有哪些特征?
何时以及如何对资源所有权保持不可知?
如何在 C++ 中表达独占内存所有权?
如何在 C++ 中表达共享内存所有权?
不同内存所有权语言构造的成本是什么?