C++中如何得到类对象的长度..

我定义了一个类classabc{public:inti;intq;voidprti(){printf("i=%d,q=%d.\n",i,q);}};voidprtMsg(... 我定义了一个类
class abc
{
public:
int i;
int q;
void prti()
{
printf("i = %d, q = %d.\n",i,q);
}
};
void prtMsg(abc theClass)
{
theClass.i = 100;
theClass.prti();
}
int main(int argc, char* argv[])
{
abc myClass;
myClass.q = 50;
prtMsg(myClass);
return 0;
}
如上面一样...当执行 prtMsg(myClass); 时...C++发现没有拷贝构造函数,所以就自己复制对象,这个其实在反编译时可以看出的(我只是懂那么一点点儿.)...而复制的尺寸在反编译的时候也可以明确看出,,比如上面myClass的长度为0x40H,
我的主要问题是在于怎么通过函数实现知道这个类对象长度为0x40H,或者说,在C++中,类对象传参时分配栈内存的尺寸又是从哪里来的..怎么计算的??,....谢谢.
目的是怎么知道长度..而不是如何实现复制...谢谢..请不要理解错误.
展开
 我来答
poseidon_k
2012-11-30 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:310万
展开全部
sizeof(abc), 编译时编译器就能确定类abc的结构和内存大小。
追问
非常感谢。是我自己搞混淆了。
bhtzu
2012-11-30 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4182万
展开全部
int size = sizeof(myClass);
这个可以知道占用内存大小
追问
非常感谢。我自己搞混淆了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whoami2099
2012-11-30 · TA获得超过175个赞
知道小有建树答主
回答量:463
采纳率:100%
帮助的人:171万
展开全部
sizeof(abc);
追问
非常感谢。是我自己搞混淆了。把问题搞复杂了。。以为对象不能想结构体那样sizeof得到尺寸的。。。。~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龚炜林
2012-11-30 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:575万
展开全部
能不能把你看到的40h相关的反汇编代码贴出来看一下?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式