del*_*bao 2 c++ virtual function vtable
为了实现动态绑定,对于每个类,都有一个虚拟表来存储每个函数的addr.为什么需要这种间接?我们可以让类直接将ptr存储到正确的函数中吗?
Mar*_*k B 6
事实上你可以做到这一点.然后,每个多态类的每个实例都需要将其整个虚拟表存储为对象的一部分.对于具有大量虚拟方法的类,这将是一个重要的内存开销.不能保证它甚至会更快,因为你可以通过存储如此多的冗余数据来减少缓存局部性.
归档时间:
10 年,10 月 前
查看次数:
102 次
最近记录: