【发布时间】:2016-10-15 20:09:43
【问题描述】:
final 说明符 可以与类或结构一起使用以禁止从它们继承。在这种情况下,我们只需要将我们的类/结构标记为final:
class Foo final {
// ...
};
更有趣的是,相同的语法对联合有效:
union Foo final {
// ...
};
final 也可以与联合定义一起使用,在这种情况下,它具有 没有影响(除了对 std::is_final 的结果),因为联合 不能派生自)
看起来 final 说明符 与联合的使用是荒谬的。如果是这样,为什么甚至可以将联合标记为最终?只是为了一致性?或者关于 type_traits 的一些东西?我错过了什么吗?在某些情况下我们需要将 final 与 unions 一起使用吗?
【问题讨论】:
-
如果你迷恋“没有效果”。这远非“荒谬”。
-
@ddriver 抱歉,我没听清。 “恋物癖”是什么意思?
-
我的意思正是它的意思。
-
这可能是因为
union被认为是一个类,所以final关键字适用于它。 -
@AndyG 这基本上意味着,唯一的原因是一致性......