虚函数

devilFredo 2009-09-01 01:08:19
如果一个类中有虚函数,也有不是虚函数的成员函数。其中虚函数是放在vtable表中,那这个不是虚函数的成员函数放在哪呢?
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bfzhao 2009-09-01
  • 打赏
  • 举报
回复
初学者很难了解什么是代码段。
简单地说,成员函数和C中的全局函数都是一样的,但是对于成员函数,C++编译器会提供一个额外的参数,那就是this指针。这样,这个函数就可以使用对象的成员变量了。对于虚函数,情况稍有不同。由于虚函数无法在编译的时候就确定,所以的包含虚函数的对象都有一个你说的vtable,其中每一个都是一个具体的指向该对象的成员函数的指针(虚函数的顺序在编译时就确定)。调用的时候,直接取到这个函数指针,然后调用
kakashi0309 2009-09-01
  • 打赏
  • 举报
回复
不错 虚函数的地址放在虚表里
晨星 2009-09-01
  • 打赏
  • 举报
回复
并不是虚函数放在vtable中,虚函数跟一般的函数都一样,都放在代码段中。
只不过虚函数“的地址”(也就是函数入口)放在vtable中。

64,439

社区成员

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

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