设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1575|回复: 5
打印 上一主题 下一主题

有关对象的问题?

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 00:55:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我们都知道,对象在内存中只存储他的数据成员,那么它的成员函数在什么地方呢?
6#
发表于 2009-11-4 00:55:17 | 只看该作者
以下是引用litcatyx在2006-11-4 21:26:30的发言:
在程序的代码段,代码段是一块内存区域专门存放可执行代码的

关于对象的大小最好不要做过多的假设,因为许多机制都会影响到对象的大小,虚函数就是其中一个,即使类中没有虚函数,对象的大小也可能不是你所预料的

class A
{
char a;
int i;
};

如果sizeof(char)==1,sizeof(int)==4;那么sizeof(A)==?
在我这sizeof(A)==8;因为当中涉及到许多编译器细节,当看完Inside the C++ Model之后,这些就相当明了了

这是对齐原则
跟LZ说的不是一个
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-4 00:55:16 | 只看该作者
哦,错了,少写了一个单词,是
Inside the C++ Object Model
中文名
深度探索C++对象模型
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 00:55:15 | 只看该作者
在程序的代码段,代码段是一块内存区域专门存放可执行代码的

关于对象的大小最好不要做过多的假设,因为许多机制都会影响到对象的大小,虚函数就是其中一个,即使类中没有虚函数,对象的大小也可能不是你所预料的

class A
{
char a;
int i;
};

如果sizeof(char)==1,sizeof(int)==4;那么sizeof(A)==?
在我这sizeof(A)==8;因为当中涉及到许多编译器细节,当看完Inside the C++ Model之后,这些就相当明了了
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 00:55:14 | 只看该作者
例如对象中有数据成员:int x和int y,那么其对象在内存中占:sizeof(int)*2  个字节,还是:sizeof(int)*2+指针占用的字节,
回复 支持 反对

使用道具 举报

2#
发表于 2009-11-4 00:55:13 | 只看该作者
保存函数指针
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 21:30 , Processed in 0.178418 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表