C++ 编译器生成函数的规则

对于构造函数、析构函数、拷贝构造函数和拷贝赋值运算符,编译器永远会在未声明的情况下生成它们各自的默认版本,是否声明其中一者对另一者的生成无影响,各自具有独立性。

移动构造函数在以下条件皆满足时生成:

  • 不存在用户声明的拷贝构造函数
  • 不存在用户声明的拷贝赋值运算符
  • 不存在用户声明的析构函数
  • 不存在用户声明的移动赋值运算符

移动赋值运算符在以下条件皆满足时生成:

  • 不存在用户声明的拷贝构造函数
  • 不存在用户声明的拷贝赋值运算符
  • 不存在用户声明的析构函数
  • 不存在用户声明的移动构造函数
posted @ 2020-05-12 12:45  BinarySong  阅读(204)  评论(0编辑  收藏  举报