有没有办法限制继承? [关闭]

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 是更好的选择

【讨论】:

是的,确实,如果你不想从一个类派生,那么写它就不会做任何有用的事情。不仅没有人能够从中派生,也没有人想要从中派生。

以上是关于有没有办法限制继承? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法增加 DevOps 中板的项目限制?

限制对 java、c++、python 程序的权限 [关闭]

应用程序池DefaultAppPool提供服务的进程关闭时间超过了限制的解决办法

有没有办法进行批量地理编码(通过地址获取纬度/经度,反之亦然)? [关闭]

Doctrine 继承和 MySQL 连接表限制

将子 div 高度限制为父容器高度 [重复]