Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
v-table(虚拟方法表)是 C++ 规范的一部分,还是由编译器来解决虚拟方法查找?
如果它是规范的一部分:为什么?
我猜它依赖于编译器,但有人对我说它是规范的一部分。
非常欢迎参考!
1.7 C++ 内存模型 3 [...] 该语言的各种特性,例如引用和虚函数,可能涉及程序无法访问但由实现管理的额外内存位置。[...]
你有它。这取决于实施。
不,它不是语言规范的一部分。该标准指定了必须如何解析对虚拟函数的调用,但没有指定编译器实现所需结果的机制。
很难提供“负面”参考(即标准不要求使用 v 表的地方),但标准中虚函数调用的相关部分是 5.2.2 [expr.call] 和 10.3 [class.virtual ]。