【发布时间】:2015-10-30 00:39:45
【问题描述】:
有没有办法创建基类(例如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
}
【问题讨论】:
-
将其设为私有。看到这个问题stackoverflow.com/questions/10474417/…
-
确实有效。万分感谢!要使其正常工作,很难理解继承级别和修饰符组合。
-
已编辑:这是对先前消失的评论的回答。
-
@RAEC,这种方式将完全弃用继承,请参阅this topic
-
他仍然可以用一个参数声明他的构造函数并将其公开,顺便说一句,在 C++11 中你实际上可以“删除”构造函数en.cppreference.com/w/cpp/language/default_constructor
ClassName() = delete ;
标签: c++ inheritance constructor default-constructor