有什么方法可以创建基类(例如boost::noncopyable)并继承它,这将禁止编译器为派生类生成默认构造函数,如果它不是由用户(开发者)?
例子:
class SuperDad {
XXX:
SuperDad(); // = delete?
};
class Child : YYY SuperDad {
public:
Child(int a) {...}
};
结果:
int main () {
Child a; // compile error
Child b[7]; // compile error
Child c(13); // OK
}
最佳答案
将构造函数设为私有(private)。
protected:
Base() = default;
关于c++ - 禁止在派生类中使用默认构造函数,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862976/