前言: 前几天在一次笔试过程中被问到c++如何设计禁止调用默认构造函数,当时简单的想法是直接将默认构造函数声明为private即可,这样的话对象的确不能直接调用.之后查阅了<Effective c++>之后得到了比较详尽的解释. 了解c++的默认行为: 当我们创建空类时,c++默认给我们生成了四种成员函数: 构造函数 析构函数 拷贝构造函数(copy) 重载=的拷贝函数(copy assignment) 因此,当你写下如下的代码: class Empty{}; 那么编译器会自动生成: clas…