C++11的问题:类的默认移动构造函数会做什么?

类默认的移动构造函数是否是这样:

  • 如果是简单值、静态数组、指针,就复制
  • 无视指针指向的内容
  • 如果是直接的对象,就调用其移动构造函数

是这样吗?

是否意味着,假如类及其成员的类都未写移动构造函数,那么当需要移动的时候,实际效果与默认拷贝构造函数是一样的?

没有实现移动构造,移动拷贝函数,就不能利用移动的优势,主要是性能的提升

但是C++11中的STL等模板库已经支持移动了,所以你的程序即使不改,当你使用vector,list等这些时,也会可能受益到移动构造函数带来的性能优化