Item 05:了解C++默默编写并调用哪些函数(Know what function C++ silently writes and calls)
Ex: class Empty();
C++会默认写下:
class Empty{
public:
Empty(){...}; //default构造函数
Empty(const Empty & rhs){...} //copy构造函数
~Empty(){...} //析构函数
Empty & operator = (const Empty & rhs) //copy assignment操作符
}
作用:
1、default构造函数和析构函数主要是给编译器一个地方用来放置“藏身幕后”的代码
2、copy构造函数和copy assignment操作符,编译器创建的版本只是单纯地将来源对象的每一个non-static成员对象拷贝到目标对象
请记住:编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,以及析构函数。