标题: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-153513-1-1.html




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

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