社区
C++ 语言
帖子详情
请问虚函数表放在内存中的什么地方?
srxumin
2016-02-20 04:44:21
如果一个对象中有虚函数,系统会为它生成一个“虚表指针”,这个指针占4字节,它指向一个虚表。这个虚表是在内存中的什么位置?或者说是在C++对象模型中的什么位置?就像是静态变量,常量,它们都有自己的一片内存区。
因为虚函数越多,虚表就越大的,但是虚表指针倒是永远是4个字节。
...全文
1068
7
打赏
收藏
请问虚函数表放在内存中的什么地方?
如果一个对象中有虚函数,系统会为它生成一个“虚表指针”,这个指针占4字节,它指向一个虚表。这个虚表是在内存中的什么位置?或者说是在C++对象模型中的什么位置?就像是静态变量,常量,它们都有自己的一片内存区。 因为虚函数越多,虚表就越大的,但是虚表指针倒是永远是4个字节。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2016-02-21
打赏
举报
回复
本质上,C,C++内存分
四大区域
, 其中
代码区
一般不存放数据 另有三大
数据区
堆区
(也就是自由存储区,malloc,free new delete 用的就是这一区域)
栈区
(自动变量,函数形式参数,函数返回地址等等 用的就是这一区域)
数据区
(有时候称为
静态区
。 静态常量(优化不掉的),静态变量,外部变量等等在这一区域, 还可以细分,但是没有必要区分这么细, 那种划分,只是编译器实现时,采用的方案,最终汇总为这一区域)
lm_whales
2016-02-21
打赏
举报
回复
1)虚表 虚表在静态区,因为对每个类,所有对象共用虚表。 2)虚表指针 虚表指针在对象内部,对象在哪他在哪。 三大区域都有可能。 就像人移动自己的躯体(用躯体表示对象,用手指表示虚表指针), 躯体在哪里,手指也在哪里
lm_whales
2016-02-21
打赏
举报
回复
编译器有时候把不可修改数据(常量数据),放在代码区 这只是一种代管行为,不是必须的。 主要作用是,现代操作系统代码区是不可写的,或者可以设置为不可写的 这样对常量修改就会出错,编译器这样来维护常量的常量性。 VC debug 版本编译时,通常会这么干
paschen
版主
2016-02-20
打赏
举报
回复
http://wenku.baidu.com/link?url=H5gEfohoHyig0Dl45KQ_d5OVrDSy12b4MpEXADT56GCaO26EqjznporU18tu5x4fyns61QxtoppK3HIrBOvGQwpOpZummOe_zpIhGJVjV7G
srxumin
2016-02-20
打赏
举报
回复
在C++中,内存分成5个区,分别是堆、栈、自由存储区、全局/静态区和常量存储区 那这个虚函数表是不是放在栈区?
stephen_csdn
2016-02-20
打赏
举报
回复
我想lz想表达的是虚表在栈上
shinerise
2016-02-20
打赏
举报
回复
虚表指针指向的东西无非是一堆函数指针变量啊,和普通的变量没什么区别啊。普通变量在内存中什么位置,虚表指针指向的对象就在什么地方啊。这个问题有点摸不着头脑。
《C经典面试》编译链接、指针、
内存
bug、函数、其它
课程内容:1.编译链接:编译链接过程、预编译、存储类、生命周期、作用域、链接域等2.指针:指针概念、数组相关的指针、字符串指针、函数指针等3.
内存
bug:
内存
越位、
内存
覆盖、使用非法
内存
、
内存
泄露等。4.函数:自定义函数、内联函数、回调函数、变参函数、递归函数、库函数等5.其它:自动类型转换、数据溢出、结构体对齐、volatile、typedef、assert宏、逗号
表
达式、++/--等
【C++】
虚函数
表
存
放在
哪里?
3.
虚函数
表
存储
虚函数
的地址,即
虚函数
表
的元素是指向类成员函数的指针,而类
中
虚函数
的个数在编译时期可以确定,即
虚函数
表
的大小可以确定,即大小是在编译时期确定的,不必动态分配
内存
空间存储
虚函数
表
,所以不再堆
中
. ...
虚函数
表
存
放在
哪里
3.
虚函数
表
存储
虚函数
的地址,即
虚函数
表
的元素是指向类成员函数的指针,而类
中
虚函数
的个数在编译时期可以确定,即
虚函数
表
的大小可以确定,即大小是在编译时期确定的,不必动态分配
内存
空间存储
虚函数
表
,所以不再堆
中
. ...
虚函数
和普通类成员函数在
内存
中
是怎样存放的?
虚函数
表
位于只读数据段(.rodata),即:C++
内存
模型
中
的常量区;
虚函数
代码则位于代码段(.text),也就是C++
内存
模型
中
的代码区; 只提到了
虚函数
和存放位置,那么类额普通成员函数呢? 有一篇好文,提到了类的...
虚函数
表
放在
哪里
引言:近日CSDN的"C/C++语言"版的一个问题引起了我的注意:"
请问
虚函数
表
放在
哪里?"。我也曾经思考过这个问题,零零散散也有一定的收获,这次正好趁这个机会把我对这一部分的理解整理一下。首先值得声明的是,本文的...
C++ 语言
64,683
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章