C++ 如何使类完全不可派生。有办法吗?
嗨,有人让我知道如何使类完全不可导。有办法吗? 请让我知道。 当做C++ 如何使类完全不可派生。有办法吗?,c++,class,inheritance,C++,Class,Inheritance,嗨,有人让我知道如何使类完全不可导。有办法吗? 请让我知道。 当做 Hara < p>参见C++如何解释它,以及为什么它可能不是一个好主意。C++ [P/>] P>如果您的类有一个私有构造函数,则没有派生类的实例化。 参见C++ FAQLite .< /P> < P>使构造函数私有。使CtoSrof私有。 class not_derivable { private: not_derivable(){} }; class derived : public not_derivable {}; i
Hara < p>参见C++如何解释它,以及为什么它可能不是一个好主意。C++ [P/>] P>如果您的类有一个私有构造函数,则没有派生类的实例化。
参见C++ FAQLite .< /P> < P>使构造函数私有。
使CtoSrof私有。
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 }
仅仅将构造函数私有化是不够的。请参阅Charles Salvia提供的链接。谢谢你们两位一个类似的问题,所以被问到这个链接似乎移动到。感谢@Haranadh,我修复了断开的链接。在回答中的链接是死的-这个网站无法访问