在我开始之前,我知道一个多态对象有一个vtable在运行时选择正确的方法。但是,每个多态对象还包含其他信息(vtable除外)吗?

我正在尝试比较启用了RTTI的多态对象与非多态对象的大小/成本。我只知道vtable的开销,想知道RTTI中还存储了什么。

编辑:可以说对于GCC编译器

最佳答案

那里也可能有一个实现定义的类型名称(对于std::type_info::name(),理论上可以包含任何东西),但是否则它几乎只是vtable。当然,我想不出满足语言规则所需的其他任何东西。

在一般情况下不能说更多。这完全取决于实现,而您没有指定一个。如果确实需要,一些编译器可能会提供鸡肉汤食谱。

关于c++ - RTTI为多态对象存储哪些信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20916064/

10-14 07:16