3.3 右值引用:移动语义和完美转发
3.3.1 和 3.3.2 章节主要讲述了移动语义的必要性。
我认为可以改进逻辑如下:
1. 拷贝构造函数的优点在于提高代码可读性,使程序员不必定义繁琐的临时变量,而只需关注业务逻辑,尽可能的使所有代码直接体现业务逻辑。
2. 然而,拷贝构造函数的参数通常是引用类型,这会执行浅拷贝,如果某个对象被销毁,delete 或解引用另一个对象的指针可能会导致严重问题,因为此时对象已经失去了资源的使用权。
3. 改变拷贝构造函数以进行深拷贝可避免 delete 悬挂指针,但会带来许多不必要的资源创建和销毁。
4. 引入移动语义,将原对象对资源的所有权转移,这样既保留了拷贝构造函数的代码可读性,又得到了拷贝构造函数的高性能。
总的来说,整个过程就是:拷贝构造函数的优点 → 拷贝构造函数的不足 → 解决拷贝构造函数不足的解决方案的缺点 → 移动语义。可以看到,移动语义是在 C++ 不断自我否定的过程中被引入的。
相关推荐
© 2023-2025 百科书库. All Rights Reserved.
发表评价