【问题标题】:Is there any way to restrict inheritance? [closed]有没有办法限制继承? [关闭]
【发布时间】:2016-09-18 21:14:37
【问题描述】:

请提供一个简单的解决方案来限制 C++ 中的继承。

【问题讨论】:

  • 另外,你的问题太笼统了。 “限制”是什么意思?我猜你已经知道 C++ 中的继承了,那你为什么不解释标准修饰符在哪些方面对你来说不够用呢?
  • 谷歌final关键字。

标签: c++ inheritance


【解决方案1】:

是的!从 C++11 开始,您可以使用 final 说明符来指示一个类不能从以下位置继承:

class DontInheritMe final {
      // This class cannot be inherited from.
};

如果您有 Java 经验,在这种情况下,C++ 中的 final 关键字的工作方式与 Java 中的 final 类相同。

【讨论】:

  • 顺便说一句,值得一提的是,这个说明符也可以放在虚方法上,以防止在派生类中被覆盖。
【解决方案2】:

如果你真的不想继承一个类,那就把它的成员变量和成员函数设为私有,如果其他类试图继承它,他们无论如何都无法访问它的函数和变量。 但是使用 final 是更好的选择

【讨论】:

  • 是的,确实,如果你不想从一个类派生,那么写它就不会做任何有用的事情。不仅没有人能够从中派生,也没有人想要从中派生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-24
  • 2011-02-14
  • 2015-05-27
相关资源
最近更新 更多