gpt4 book ai didi

c++ - 同一个 C++ 类的所有实例共享一个 vtable 还是每个实例都有自己的?

转载 作者:太空狗 更新时间:2023-10-29 20:28:56 24 4
gpt4 key购买 nike

如果 Base 是基类,Derived 是派生类,并且有 25 个 Derived 实例,如何设置 vtables 以供所有实例访问?它们加载到内存的什么位置?

最佳答案

编译器可以在 C++ 中实现动态分派(dispatch),但我认为实际上根本不需要使用 vtable,但找到一个不这样做的编译器是非常不寻常的。

在大多数情况下,我认为每个类(包含一些虚拟方法)将拥有一个 vtable(因此,如果我有 5 个 class A 实例,我仍然只有 1 个 vtable),但是不应以任何方式依赖此行为。

据我所知,非虚拟类不需要虚表。

阅读你的问题似乎你认为每个对象都有自己的代码拷贝,我不确定,我不想指责你这样的事情,但以防万一......

Google 类似:“内存中的 C++ 对象是什么样的”

关于c++ - 同一个 C++ 类的所有实例共享一个 vtable 还是每个实例都有自己的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com