有没有办法限制继承? [关闭]
Posted
技术标签:
【中文标题】有没有办法限制继承? [关闭]【英文标题】:Is there any way to restrict inheritance? [closed] 【发布时间】:2016-09-18 21:14:37 【问题描述】:请提供一个简单的解决方案来限制 C++ 中的继承。
【问题讨论】:
另外,你的问题太笼统了。 “限制”是什么意思?我猜你已经知道 C++ 中的继承了,那你为什么不解释标准修饰符在哪些方面对你来说不够用呢? 谷歌final
关键字。
【参考方案1】:
是的!从 C++11 开始,您可以使用 final
说明符来指示一个类不能从以下位置继承:
class DontInheritMe final
// This class cannot be inherited from.
;
如果您有 Java 经验,在这种情况下,C++ 中的 final
关键字的工作方式与 Java 中的 final
类相同。
【讨论】:
顺便说一句,值得一提的是,这个说明符也可以放在虚方法上,以防止在派生类中被覆盖。【参考方案2】:如果你真的不想继承一个类,那就把它的成员变量和成员函数设为私有,如果其他类试图继承它,他们无论如何都无法访问它的函数和变量。 但是使用 final 是更好的选择
【讨论】:
是的,确实,如果你不想从一个类派生,那么写它就不会做任何有用的事情。不仅没有人能够从中派生,也没有人想要从中派生。以上是关于有没有办法限制继承? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
限制对 java、c++、python 程序的权限 [关闭]
应用程序池DefaultAppPool提供服务的进程关闭时间超过了限制的解决办法