c++ - C++虚函数除了vtable怎么实现?

标签 c++ polymorphism virtual member-functions

Possible Duplicate:
A question about virtual mechanism in C++

在 C++ 中使用 vtable 是实现虚成员函数机制的唯一方法吗?还有哪些其他方式?

最佳答案

从技术上讲,动态分派(dispatch)所需要的只是能够识别对象的动态类型,给定一个指向它的指针。因此,任何类型的隐藏(或不那么隐藏)typeid 字段都可以工作。

动态调度将使用该 typeid 来查找关联的函数。该关联可以是一个 hastable 或一个 typeid 为索引的数组,或任何其他合适的关系。 vptr 恰好是用最少的步骤实现这一目标的方法。

关于c++ - C++虚函数除了vtable怎么实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417829/

相关文章:

c++ - 虚拟方法是在运行时才创建的方法吗?

c++ - 默认参数不是同一类型?

C++ 继承运算符<<

C++ - 通过初始化列表构造 unique_ptr 的 vector

c++ - c++多态性中实例的构造函数和析构函数

port - 如何创建虚拟 MIDI 设备

c++ - 类定义需要参数吗?

c++ - 加密初始化 vector

C++ - '(' 标记之前的预期主表达式和 ‘(’ 标记之前缺少的模板参数

c++ - 在 int 中测试 4 个字节的零