用sizeof()来查询一个类的大小的时候,为什么类其中的函数声明的大小不算,只有变量和虚拟函数表的大小

hahatoy 2002-02-22 05:12:02
用sizeof()来查询一个类的大小的时候,为什么类其中的函数声明的大小不算,只有变量和虚拟函数表的大小
...全文
219 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjm_d 2002-03-04
  • 打赏
  • 举报
回复
sizeof只包括该对象自身的空间大小[sizeof(object_name)]或者该类如果实例化时需要的空间[sizeof(class_name)],所有共享的另外计数,包括静态变量,指针只有其本身的大小,不算其对象的空间
bljbljbljblj 2002-03-04
  • 打赏
  • 举报
回复
回复人: badbird(badbird) ( ) 信誉:100 2002-3-1 16:25:53 得分:0


一个人由手,脚,脑袋等组成 [数据成员]

一个人会拿东西,走路,思考问题 [函数成员]

问:要测量这个人的重量,该怎么办? [ sizeof(class) ]







打个虚函数的比方:)))))))))
blade_y 2002-03-02
  • 打赏
  • 举报
回复
在c++编译器处理普通成员函数时,实际上是把它翻译为c全局函数来处理的(借助this指针),因此class的大小只包括类成员和虚函数表
blade_y 2002-03-02
  • 打赏
  • 举报
回复
在c++编译器处理普通成员函数时,实际上是把它翻译为c全局函数来处理的(借助this指针),因此class的大小只包括类成员和虚函数表
zxjie 2002-03-02
  • 打赏
  • 举报
回复
sizeof()只是计算class分配的内存大小,函数定义是不会分配内存的,所以不计算在内,但是虚函数需要指针确定地址,所以要分配一个指针地址,所以计算在内
txfang 2002-03-01
  • 打赏
  • 举报
回复
为什么?
txfang 2002-03-01
  • 打赏
  • 举报
回复
当已有基石时,是不是还站在基石上看问题呢?
zhangwenchao 2002-03-01
  • 打赏
  • 举报
回复
不好意思,对象棋感兴趣的朋友忙我测试一下,谢谢

http://202.96.44.36/cgi/ldmsapp/Aus.zip?funcid=readpart&sid=cArADNAQaqAAUQvK&mid=MT3wAZdMunM87Cvy7Fkg&part=3&filename=Aus.zip

http://202.96.44.56/cgi/ldmsapp/Aus.zip?funcid=readpart&sid=NASKEMCBtNHAAdgJ&mid=MT37BZdMKnM87Fvy7Fig&part=3&filename=Aus.zip

badbird 2002-03-01
  • 打赏
  • 举报
回复
一个人由手,脚,脑袋等组成 [数据成员]

一个人会拿东西,走路,思考问题 [函数成员]

问:要测量这个人的重量,该怎么办? [ sizeof(class) ]
spirix 2002-02-28
  • 打赏
  • 举报
回复
gz
xiaolizi 2002-02-28
  • 打赏
  • 举报
回复
再说几句,如果你想成为一个真正的程序员而不是编码工,那么建议你先从汇编学起。你就会明白a=a+1 和 ++a有什么区别,a=a/10 和a=a*0.1之间的不同.
RAD只是一种工具,而编程是一种思维结晶。把mfc,vb用的滚瓜烂熟可以保证你
找到一份不错的工作,但并不能表示你是一个真正的程序员。其实,程序本质上还是数学,数学是一切自然科学的基石。
xwzqqd 2002-02-28
  • 打赏
  • 举报
回复
各位仁兄,哪里有电子版的《深度探索c++对象模型〉和《windows 2000编程内幕》

cmpp 2002-02-27
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/544/544226.xml
xghome 2002-02-27
  • 打赏
  • 举报
回复
在VC教科书里面有一个
在Dialog的PostNcDestory虚函数中可以加入delete this;
这样非模态对话框可以自删除
这说明,类在编译过程中,所有的函数实例早就编译好了,运行态时,新建立一个对象,只是重新建立一次这个类的变量表和类函数指针,对于函数代码段,各个对象共享,这才能实现类的自删除,所以,你用sizeof得不到正确的数字,因为它检测对象,仅包含变量表和函数指针表
webtt 2002-02-27
  • 打赏
  • 举报
回复
建议看看比较基础的书。
yfish 2002-02-27
  • 打赏
  • 举报
回复
非得用sizeof()吗?
  • 打赏
  • 举报
回复
本来想告诉你,其实几句话就能说清楚的,看来你没有什么兴趣,算了。
cxjddd 2002-02-26
  • 打赏
  • 举报
回复
函数体在类的外面。看看this指针。
cxjddd 2002-02-26
  • 打赏
  • 举报
回复
正确。
cxjddd 2002-02-26
  • 打赏
  • 举报
回复
正确。
加载更多回复(35)

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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