| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:sizeof与类的疑难问题
只看楼主 加入收藏
chenyangping
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-4
收藏
 问题点数:0 回复次数:2 
sizeof与类的疑难问题

#include <iostream.h>

class A
{
private:
virtual fn(){};
};

void main()
{
cout<<"sizeof(A)="<<sizeof(A)<<endl;
}



输入结果是:sizeof(A)=4

------------------------------------------------------------------------------------
#include <iostream.h>

class A
{
private:
fn(){};
};

void main()
{
cout<<"sizeof(A)="<<sizeof(A)<<endl;
}

输入结果是:sizeof(A)=1

为什么类的成员函数加了virtual,类的类型所占内存空间就变大呢?

搜索更多相关主题的帖子: sizeof 疑难 
2007-07-07 17:34
天空の城
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-7-1
收藏
得分:0 

virtual成员函数意味着该类多了一个隐藏起来的成员变量pvtable来指向虚函数表,调用虚拟函数时是用pvtable来根据索引调用虚函数表中的函数。


2007-07-07 21:59
chenyangping
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-4
收藏
得分:0 
谢谢天空の城,你的答案应该就是最终的答案了。我很满意!
2007-07-16 08:15
快速回复:sizeof与类的疑难问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017062 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved