如果定义一个空类,编译器会帮你生成的函数
四个函数(默认构造函数+big three)
- 默认构造函数(不带参数的构造函数)
- 析构函数
- 赋值函数(operator=)(按字节拷贝)
- 拷贝构造函数(用一个对象来初始化另一个对象)(按字节拷贝)
注意由于3和4是按字节拷贝,如果类中有指针,会变成浅拷贝,所以注意有指针的时候自己写,通常来说,要么全部接受要么全部重写
c++11中加了俩函数变成6个(默认构造+big five)
- 默认构造函数(不带参数的构造函数)
- 析构函数
- 赋值函数(operator=)(按字节拷贝)
- 拷贝构造函数(按字节拷贝)
- 移动构造函数
- 移动赋值操作
c++引入右值和move,5,6可以提升效率。
具体见博客https://blog.csdn.net/SwordArcher/article/details/101172946
网友评论