我们从一个非常简单甚至不起眼的操作开始探索基本的 C++ 习惯用法 —— 交换操作。交换的概念指的是两个对象互换位置 —— 交换后,第一个对象保留其名称,但其内容变得与原先第二个对象相同,反之亦然。这一操作在 C++ 类中极为基础,以至于标准库为此提供了一个模板 std::swap 来实现此功能。请放心,C++ 总能将像交换这样基础的操作也变成一个充满微妙细节的复杂问题。
本章涵盖以下主题:
标准 C++ 库如何使用交换操作?
交换操作有哪些应用场景?
如何利用交换操作编写异常安全的代码?
如何为我们自己的类型正确实现交换操作?
如何正确地交换任意类型的变量?