这里有一个与内容略有关联的问题,但话题完全不同。
现在,一个概念是关于函数解析,另一个是关于class
解析?我想知道如果它们使用相同的vtable
(至少在gcc-4.5中),那么这是否是编译器相关的术语?
我知道这可能看起来是一个基础的愚蠢问题,但我从未想过。
这里有一个与内容略有关联的问题,但话题完全不同。
现在,一个概念是关于函数解析,另一个是关于class
解析?我想知道如果它们使用相同的vtable
(至少在gcc-4.5中),那么这是否是编译器相关的术语?
我知道这可能看起来是一个基础的愚蠢问题,但我从未想过。
new Foo
时,即使您仅存储了void*
,该对象也具有动态类型Foo
。
vtable
是一种机制,用于以这样的方式存储有关对象的动态类型的信息,以便可以通过基指针检索它。您可以在vtable中存储许多内容:函数指针、转换偏移量、std::type_info
对象等。