社区
C++ 语言
帖子详情
虚函数列表在哪里存放?
fendouzhe
2012-03-06 09:26:10
如题,想问一下,虚函数列表在哪里被创建?其中存储的虚函数地址是指向代码段中的函数实体么?
...全文
220
5
打赏
收藏
虚函数列表在哪里存放?
如题,想问一下,虚函数列表在哪里被创建?其中存储的虚函数地址是指向代码段中的函数实体么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
RabbitLBJ
2012-03-10
打赏
举报
回复
编译器维护的,只有他才知道该放在那里
不过可以通过vptr的地址查看
xinen8721
2012-03-10
打赏
举报
回复
推荐孙鑫C++教学视频,个人觉得在前几节课讲c++的入门课程非常实用,容易上手,楼主去看看吧
赵4老师
2012-03-07
打赏
举报
回复
《深度探索C++对象模型》
youcry
2012-03-06
打赏
举报
回复
编译器必需要保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证正确取到虚函数的偏移量)
这意味着我们通过对象实例的地址得到这张虚函数表,然后就可以遍历其中函数指针,并调用相应的函数。
这是我所知道的,希望对楼主有帮助!
xiyoulaoyuanjia
2012-03-06
打赏
举报
回复
推荐一篇博客,lz好好学习去吧,这个不是一两句能说清的!
http://blog.csdn.net/haoel/article/details/1948051
虚函数
虚表的详解,大家看看!
个类如果有
虚函数
,不管是几个
虚函数
,都会为这个类声明一个
虚函数
表,这个虚表是一个含有
虚函数
的类的,不是说是类对象的。一个含有
虚函数
的类,不管有多少个数据成员,每个数据成员都有一个虚指针,在内存中,
存放
每个类对象的内存区,在内存区的头部都是先
存放
这个指针变量的,从第5个字节才是这个对象自己的东西。
C/C++杂记
虚函数
的实现的基本原理(图文)
1. 概述 简单地说,每一个含有
虚函数
(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的
虚函数
表,其中
存放
着该类所有的
虚函数
对应的函数指针。例: 其中: B的
虚函数
表中
存放
着B::foo和B::bar两个函数指针。 D的
虚函数
表中
存放
的既有继承自B的
虚函数
B::foo,又有重写(override)了基类
虚函数
B::bar的D::bar,还有新增的
虚函数
D::quz。 提示:为了描述方便,本文在探讨对象内存布局时,将忽略内存对齐对布局的影响。 2.
虚函数
表构造过程 从编译器的角度来说,B的
虚函数
表很好构造,D的
虚函数
表构造过程相对复杂。下面给出了构造D的
虚函数
表的一种方式(仅供参考
Excel函数100问
初学Excel函数你是否总有一种无力感? 工作中遇到问题时,不知道用什么函数来解决? 函数的单词都认识,但一用它来写公式,要么写不出来,要么结果不对,更别说编写嵌套公式 那些函数名称、函数参数的作用总是记不住,...
【C++】
虚函数
表
存放
在哪里?
1.
虚函数
表是全局共享的元素,即全局仅有一个. 2.
虚函数
表类似一个数组,类对象中存储vptr指针,指向
虚函数
表.即
虚函数
表不是函数,不是程序代码,不肯能存储在代码段. 3.
虚函数
表存储
虚函数
的地址,即
虚函数
表的元素是指向类成员函数的指针,而类中
虚函数
的个数在编译时期可以确定,即
虚函数
表的大小可以确定,即大小是在编译时期确定的,不必动态分配内存空间存储
虚函数
表,所以不再堆中. 根据以上特征,
虚函数
表类似于类中静态成员变量.静态成员变量也是全局共享,大小确定. 所以我推测
虚函数
表和静态成员变量一样,
存放
在全局
虚函数
表
存放
在哪里
1.
虚函数
表是全局共享的元素,即全局仅有一个. 2.
虚函数
表类似一个数组,类对象中存储vptr指针,指向
虚函数
表.即
虚函数
表不是函数,不是程序代码,不肯能存储在代码段. 3.
虚函数
表存储
虚函数
的地址,即
虚函数
表的元素是指向类成员函数的指针,而类中
虚函数
的个数在编译时期可以确定,即
虚函数
表的大小可以确定,即大小是在编译时期确定的,不必动态分配内存空间存储
虚函数
表,所以不再堆中. 根据以上特征,...
C++ 语言
64,663
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章