一.前言
这篇文章简单描述一下C++拷贝构造函数和移动构造函数的区别。
二.C++拷贝构造函数和移动构造函数的区别
1.声明不同。
拷贝构造函数声明形式
Demo(const Demo& demo) = default;
移动构造函数声明形式
Demo(Demo&& demo) noexcept = default;
可以看到拷贝构造函数的参数是左值引用,移动构造函数的参数是右值引用。
2.行为不同。
拷贝构造会对内存进行复制,而移动构造会直接转移内存所属。
三.其他
1.拷贝构造函数和移动构造函数的调用时机等方面也不同。
2.拷贝赋值函数和移动赋值函数的区别类似。
欢迎讨论,欢迎指正,欢迎转载。