空类 如果你没有声明,编译器会为它声明一个default构造函数,copy构造函数,析构函数,赋值操作符。
- class Empty{};
- //---------
- class Empty
- {
- public:
- Empty(){...}
- Empty(const Empty& ths){...}
- ~Empty(){...}
- Empty& operator=(cosnt Empty& rhs){...}
- };
唯有当这些函数被需要(被调用),它们才会被编译器创建出来。
当声明了一个构造函数,编译器就不再为类创建default构造函数。