为什么虚拟表很重要

why virtual table matters?

本文关键字:虚拟 为什么      更新时间:2023-10-16

为了实现动态绑定,对于每个类,都有一个虚拟表来存储每个函数的地址。为什么需要这种间接寻址?我们可以让类直接将 PTR 存储到正确的函数中吗?

事实上,

你可以这样做。然后,每个多态类的每个实例都需要将其整个虚拟表存储为对象的一部分。对于具有大量虚拟方法的类,这将是一个很大的内存开销。不能保证它会更快,因为您可以通过存储如此多的冗余数据来减少缓存局部性。