C++拷贝构造函数和移动构造函数的区别

目录

  • 一.前言
  • 二.C++拷贝构造函数和移动构造函数的区别
  • 三.其他


一.前言

这篇文章简单描述一下C++拷贝构造函数和移动构造函数的区别。

二.C++拷贝构造函数和移动构造函数的区别

1.声明不同。

拷贝构造函数声明形式

Demo(const Demo& demo) = default;

移动构造函数声明形式

Demo(Demo&& demo) noexcept = default;

可以看到拷贝构造函数的参数是左值引用,移动构造函数的参数是右值引用。

2.行为不同。

拷贝构造会对内存进行复制,而移动构造会直接转移内存所属。

三.其他

1.拷贝构造函数和移动构造函数的调用时机等方面也不同。

2.拷贝赋值函数和移动赋值函数的区别类似。


欢迎讨论,欢迎指正,欢迎转载。

你可能感兴趣的:(C++,c++)