c++ - C++中每个类都有虚函数表吗

标签 c++ vtable

C++中每个类都有虚函数表吗?

我知道虚拟表是为了多态性。具有虚函数的类必须具有 v 表。但是类没有虚函数怎么办?或者类没有基类怎么样?

最佳答案

C++ 的语言规范没有定义什么是“vtable”,也没有定义哪些类需要 vtable。

编译器中 C++ 的特定实现通常使用 vtable 来实现虚拟方法。如果一个类没有虚方法(也没有带有虚方法的父类(super class)),那么编译器可能会忽略 vtable。但是,请记住,这纯粹是一个编译器实现决定,而不是标准所要求的。

关于c++ - C++中每个类都有虚函数表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477145/

相关文章:

C++ 初学者游戏编程 : Keeping track of objects, 库存列表、对象/字符的不同数量的数组等

c++ - 在 MainWindow 获得焦点之前,QPushButton 处于非事件状态

具有多父多态层次结构的 C++ VTable 实现

c++ - GCC:对未使用的函数的奇怪未解决引用

c++ - 当非虚函数变为虚函数时,我是否应该重新编译类实现?

c++ - 来自新手用户的共享指针查询。当使用带有成员共享指针的类容器时,我有下面的代码崩溃

java - 自毁 JFrames

c++ - 如何清除为自定义异常分配的内存

c++ - 对 `typeinfo for class' 的 undefined reference 和对 `vtable for class' 的 undefined reference

c++ - 体系结构 x86_64 vtable 的 undefined symbol