多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?

Try6198 2010-12-23 10:11:42
多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?
...全文
605 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Six_dimensional 2010-12-23
  • 打赏
  • 举报
回复
是在编译时创建的的虚函数表
编译器对每个包含虚函数的类创建一个虚函数表(vtable),在vtable中,放置这个类的虚函数地址。
编译器另外还为每个特定类的对象提供了一个虚表指针(即vptr),这个指针指向了对象所属类的虚表。在程序运行时,根据对象的类型去初始化vptr,从而让vptr正确的指向所属类的虚表,从而在调用虚函数时,就能够找到正确的函数。
healer_kx 2010-12-23
  • 打赏
  • 举报
回复
编译时就确定了,Run-time的时候初始化。
冻结 2010-12-23
  • 打赏
  • 举报
回复
虚表的创建基本放在该类的构造函数里,由编译器背地里做。
机智的呆呆 2010-12-23
  • 打赏
  • 举报
回复
虚表编译期创建,运行期初始化类对象中的虚表指针~~~
konta 2010-12-23
  • 打赏
  • 举报
回复
Compile-Time
就想叫yoko 2010-12-23
  • 打赏
  • 举报
回复
编译时完全能够确定, 在运行时使用
luciferisnotsatan 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]

编译时就确定了,Run-time的时候初始化。
[/Quote]

+1
sylar_chen 2010-12-23
  • 打赏
  • 举报
回复
虚函数表示是在编译时建立的,运行时动态绑定虚函数。

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧