嗨,任何人都让我知道如何使课程根本不可导出。有什么办法吗? 请告诉我。 问候 原
答案 0 :(得分:6)
Bjarne Stroustrup(C ++自己的创造者)参见this关于如何做到这一点的解释,以及为什么它可能不是一个好主意。
答案 1 :(得分:4)
如果您的类具有私有构造函数,则无法实例化派生类。
请参阅C ++ FAQ Lite上的"How can I set up my class so it won't be inherited from?"。
答案 2 :(得分:3)
将ctor(s)设为私人。
class not_derivable { private: not_derivable(){} };
class derived : public not_derivable {};
int main() { derived d; // diagnostic }
或者dtor:
class not_derivable { private: ~not_derivable(){} };
class derived : public not_derivable {};
int main() { not_derivable *nd = new not_derivable; derived d; //diagnostic }
答案 3 :(得分:2)
将构造函数设为私有。