gpt4 book ai didi

c++ - 为什么我们甚至需要 VPTR?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:58 28 4
gpt4 key购买 nike

为什么我们不对非虚函数使用相同的方法?

我的意思是,为什么我们要那样使用虚函数?我们不能将它们用作非虚拟的并覆盖它们吗?

如果这种方法可以节省我们的时间/空间或其他任何东西,为什么我们不对非虚函数使用相同的方法呢?我的意思是对于一个特定的类会有一个函数表是有道理的。

无论如何,先谢谢了,我只是有点困惑。

最佳答案

如果不使用间接级别,就无法实现运行时多态性。这就是 vptr 的用途。

vptr 不用于非多态函数,因为这种间接寻址会产生一定的成本。 C++ 的哲学是你不用为你不用的东西付费。

编辑:

这里有一些关于虚拟表如何工作的信息:http://en.wikipedia.org/wiki/Virtual_table

关于c++ - 为什么我们甚至需要 VPTR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4492152/

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