编译器自动生成的成员函数
如果以下成员函数用户都没有为类实现,则编译器会自动为类生成他们的缺省的实现
默认构造函数,空函数,什么也不做
析构函数,空函数,什么也不做;
拷贝构造函数-按bit位复制对象所占内存的内容
如果对象中涉及到指针的话,需要自己定义拷贝构造函数,否则可以默认;
移动构造函数-与默认拷贝构造函数一样
复制运算符重载-与默认拷贝构造函数一样
如果用户定义了上述函数,则编译器不再自动提供相应的默认实现;
=default(显示缺省)
在默认函数定义或者声明加上=default,可显式地指示编译器生成该函数的默认版本;
class T
{
int data;
public:
T() = default;//方式1:在类中使用
T(int i):data(i){}
};
T::T() = default;//方式2:在类外使用