学会思考
刻意练习

编译器自动生成的成员函数

如果以下成员函数用户都没有为类实现,则编译器会自动为类生成他们的缺省的实现

默认构造函数,空函数,什么也不做

析构函数,空函数,什么也不做;

拷贝构造函数-按bit位复制对象所占内存的内容

如果对象中涉及到指针的话,需要自己定义拷贝构造函数,否则可以默认;

 

移动构造函数-与默认拷贝构造函数一样

复制运算符重载-与默认拷贝构造函数一样

如果用户定义了上述函数,则编译器不再自动提供相应的默认实现;

 

=default(显示缺省)

在默认函数定义或者声明加上=default,可显式地指示编译器生成该函数的默认版本;

class T

{

  int data;

public:
  T() = default;//方式1:在类中使用

  T(int i):data(i){}

};

T::T() = default;//方式2:在类外使用

 

posted on 2017-03-29 00:06  Worty  阅读(571)  评论(0编辑  收藏  举报