C++ 中的 vtable 是什么?

发布于 2024-09-15 09:08:17 字数 265 浏览 4 评论 0原文

可能的重复:
为什么需要虚拟表?

C++ 中的 vtable 是什么?

到目前为止我知道 vtable 是一个虚拟表,它有一个指向虚拟函数的指针数组。我可以阅读一篇包含实际实现示例的文章吗? (任何步行将不胜感激。)

Possible Duplicate:
why do I need virtual table?

What is a vtable in C++?

So far I know that vtable is a virtual table which has an array of pointers to virtual functions. Is there an article I can read with an example of a practical implementation? (Any walk through will be appreciated.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烙印 2024-09-22 09:08:17

V 表(或虚拟表)是大多数 C++ 实现实现多态性的方式。对于类的每个具体实现,都有一个指向所有虚方法的函数指针表。指向该表(称为虚拟表)的指针作为数据成员存在于所有对象中。当调用虚拟方法时,我们查找对象的 v 表并调用适当的派生类方法。

V-tables (or virtual tables) are how most C++ implementations do polymorphism. For each concrete implementation of a class, there is a table of function pointers to all the virtual methods. A pointer to this table (called the virtual table) exists as a data member in all the objects. When one calls a virtual method, we lookup the object's v-table and call the appropriate derived class method.

内心激荡 2024-09-22 09:08:17

vTable(虚拟表)是动态调度(虚拟方法)的实现细节。

有关更多详细信息,请参阅 C++-Lite-Faq

vTable (virtual table) is an implementation detail of dynamic dispatch (virtual methods).

See C++-Lite-Faq for more details.

叹沉浮 2024-09-22 09:08:17

无论如何,它并不是一个标准的 C++ 术语。它只是实现用来实现虚函数/动态绑定的实现细节

For all it's worth, it is not a standard C++ terminology. It is just an implementation detail used by the implementation to implement virtual functions/dynamic binding

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文