Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使类完全不可派生。有办法吗?_C++_Class_Inheritance - Fatal编程技术网

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,我修复了断开的链接。在回答中的链接是死的-这个网站无法访问