diff --git a/faq/rule_of_350/main.rst b/faq/rule_of_350/main.rst index 672616d4..1099d331 100644 --- a/faq/rule_of_350/main.rst +++ b/faq/rule_of_350/main.rst @@ -256,7 +256,7 @@ rule of 3/5/0: 要么不定义任何特殊函数, 要么定义它们全部 在 :doc:`/faq/dynamic_array/main` 和 :doc:`/faq/forward_list/main` 的扩展部分, 我都有介绍如何为它们定义移动函数. -假设小明、小刚合租房子而只有一把钥匙, 移动就是小明将钥匙交给小刚, 而拷贝则是小刚拿小明的钥匙再去配一把钥匙. 我们在上方定义的文件资源由于其所有权独占性而不能拷贝, 但可以用移动将它移动给另一个 :cpp:`Input_file` 对象. +假设小明、小刚合租房子而只有一把钥匙, 移动就是小明将钥匙交给小刚, 而拷贝则是小刚拿小明的钥匙再去配一把钥匙. 我们在上方定义的文件资源由于其所有权独占性而不能拷贝, 但可以用移动 (move) 将它交给另一个 :cpp:`Input_file` 对象. .. code-block:: cpp :linenos: @@ -266,6 +266,7 @@ rule of 3/5/0: 要么不定义任何特殊函数, 要么定义它们全部 int main() { Input_file file1("text.txt"); + // ↓ 指明我们要移动 file1 Input_file file2(std::move(file1)); // 移动后预期: // - file2 占有 "text.txt"