本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
经验:
如果你自己没声明,编译器会自动声明copy constructor,copy assignment,destructor,
如果你没有声明任何构造函数,编译器会自动声明default constructor
示例:
如果你写下
class Empty{ };
将会等价于
class Empty{ public: Empty() {...} //default构造函数 Empty(const Empty &rhs) {...} //copy 构造函数 ~Empty() {...} //析构函数 Empty &operator=(const Empty &rhs) { ... } //copy assignment 操作符 }
只有当这些函数被调用时,编译器才会创建它们
Empty e1; //default构造函数, 析构函数 Empty e2(e1); //copy 构造函数 e2 = e1; //copy assignment操作符
todo