【发布时间】:2012-07-27 02:41:18
【问题描述】:
Wikipedia 在 C++11 final 修饰符上有以下示例:
struct Base2 {
virtual void f() final;
};
struct Derived2 : Base2 {
void f(); // ill-formed because the virtual function Base2::f has been marked final
};
我不明白引入虚函数并立即将其标记为 final 的意义。这只是一个不好的例子,还是还有更多?
【问题讨论】:
-
嗯,Java 有它,所以你知道,C++ 也必须有它。
-
我猜这只是个坏例子
-
有趣的事实:(几乎)相同的例子可以在 §10.3/4 下的标准中找到。
-
你总是可以通过使用关键字作为标识符来迷惑人们:
int final = 7;如果你想要 Stroustrup 的演讲,see here。 -
“这是一个例子”的哪一部分难以理解?大多数其他示例代码也同样毫无意义。示例的目的是展示功能的工作原理。
标签: c++ c++11 inheritance final virtual-functions