- 请记住:编译器可以为class创建default构造函数、copy构造函数、copy assignment 操作符,以及析构函数
当C++处理之后一个空类就不再为空,如果没做任何声明,那么编译器可以为class创建default构造函数、copy构造函数、copy assignment 操作符,以及析构函数,并且所有这谢函数都是public且为inline。
class Empty{...};//等价于如下 class Empty{ public: Empty(const Empty &rhs){...} //copy构造函数 ~Empty(){} Empty&operate=(const Empty &rhs)//copy assignment 操作符 }
注意几点:当类有const成员(不能给const赋值)、引用成员(引用初始化一次,不能更改其引用)或者基类的构造函数是private时,编译器不会自动生成copy assignment 操作符。