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

And*_*ind 3 c++ vtable

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

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

Gre*_*ill 6

C++的语言规范没有定义"vtable"是什么,或者哪些类需要一个.

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

  • 澄清,它如何实现虚拟是实现定义,但是,标准布局类型的规则非常严格,编译器几乎没有自由.也就是说,标准布局类型不能包含vtable,它会破坏标准布局的规则. (2认同)