【发布时间】:2012-04-03 19:12:08
【问题描述】:
我正在通过 Stroustrup 的 C++11 FAQ 学习 C++11。我有一个问题。
如果一个虚函数在一个类中被定义为 final,RTTI(dynamic_cast 和 typeid)是否仍然适用于它的派生类?
@MSalters:可以说,我的意图是:
struct A {
virtual void f() final; // only one virtual function, but final
};
struct B : A {
};
A* pa = new B;
B* pb = dynamic_cast<B*>(pa); // would this work? I guess it applies to typeid as well.
【问题讨论】:
-
查看我的个人资料以获取 C++11 草案链接。完整的最终标准不是免费提供的,您必须为此付费,这很可悲。
-
@RafałRawicki:在GitHub 上,可以使用较新的 N3376 (2012-02-28)。
-
@ipc:也可以直接从open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf获取n3376。
-
啊,我相信这回答了 #2 stackoverflow.com/q/9965461/46642。我正在编辑问题以仅保留第一部分。
-
@ipc 我读到 N3242 与官方的不同之处仅在于编辑更改(错别字等)。从那以后是否有任何值得称道的变化?