虚拟函数及其开销

Virtual Functions and its overhead

本文关键字:开销 函数 虚拟      更新时间:2023-10-16

我遇到了这个问题,想知道答案是什么?

以下哪个选项描述了类的预期开销有五个虚拟功能?

A。类的每个对象都包含一个结构的地址5个虚拟功能的地址

B。类的每个对象都包含五个虚拟对象的地址功能

C。类的每个对象都保存下一个虚拟对象的地址作用

D.类的每个对象都包含链接列表对象的地址其保存虚拟函数的地址。

E.类的每个对象都持有类声明的地址在内存中,通过该内存解析虚拟函数调用。

我熟悉虚拟表,每个类都有一个虚拟表,指示哪个虚拟函数指向哪个实现。然而,我不确定类的实例是如何与那个虚拟表通信的。我的猜测是A。请告诉我我是对是错,并对答案做出一些解释。

我认为官方标准没有规定如何实现V表,但我也会说它的答案是A.

http://en.wikipedia.org/wiki/Virtual_method_table

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3797.pdf

第10.3节未规定任何具体实施。

来自第10.3节"虚拟说明符意味着成员身份,因此虚拟函数不能是非成员(7.1.2)作用虚拟函数也不能是静态成员,因为虚拟函数调用依赖于特定对象来确定调用哪个函数"

仅此而已。