忘了就去这个网页把代码跑一下就好。
C++移动构造函数以及move语句简单介绍 - 青儿哥哥 - 博客园
这次手动记一下。
1. 定义了拷贝构造函数,但是没有定义移动构造函数时,使用std::move之类的应该调用移动构造函数时,实际上会调用拷贝构造函数。
2. 如果一个类没有定义移动构造函数,你用个std::move也没有那个“偷资源”的效果。也就是浅拷贝的效果。(一般深拷贝是拷贝构造函数的行为,浅拷贝是移动构造的行为)。
3. 这里可以看下make_shared的行为就是直接拷贝一下,然后析构掉临时变量。
移动构造函数也让临时变量析构掉。