【发布时间】:2011-06-04 19:46:45
【问题描述】:
根据我对 C++ 规范的(有限)知识,具有虚拟成员的类的 vtable 放置在第一个非纯非内联虚方法的定义处。编译器如何处理从具有所有纯虚拟方法(例如接口)的类继承的类?这种情况下vtable放在哪里?
【问题讨论】:
-
C++ 规范本身没有提到 vtables。
-
一个繁重的实现细节。 MSVC++ 有 __declspec(novtable) 来抑制这样的 vtable。和非标准的 __interface 关键字做同样的事情。
标签: c++ interface vtable pure-virtual