永发信息网

C++中虚函数的使用

答案:2  悬赏:0  手机版
解决时间 2021-05-24 08:56

class A


};
int _tmain(int argc, _TCHAR* argv[])
{

      A a;
     std::cout<<"Size of A= "<<sizeof(a)<<endl;

////////////////////////////////////////////////////////////////////////////////////////////

class A

    public:
              virtual void fun0(){std::cout<<"A::fun0"<<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{

      A a;
     std::cout<<"Size of A= "<<sizeof(a)<<endl;

 

上面的输出结果A=1;
下面的结果输出A=4;

我想知道它这个1和4是怎么得到的?

最佳答案

想要知道怎么得到的,就必须知道类在内存中是如何分配的。


一个空类的对象,事实上在内存中只有需要一个字节来定位它的起始位置就可以了,本来也没什么意义,只是为了占个位置,当它有了成员之后再从这个起始位置开始。


虚函数,其实是一个指针,指针占用四个字节,所以,后者的类对象大小就是4

全部回答
1:由于A类是空类,编译器会安插一个char空类,标记它的每一个对象,因此其大小为1个字节。 每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址. 4:这个类里面有一个函数,实际上它包含的是这个函数的地址指针。一个指针的SIZE 为 4。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如果我是一棵(_______)的桃花心木苗,我会想
硚口区武汉隆泰大药房(仁寿店)我想知道这个在
寿光市圣城街道曹家庄村民委员会怎么去啊,有
汝州市平顶山中国移动在哪里啊,我有事要去这
日本冲绳要签证吗,冲绳人承认自己是日本人不
BMI计算公式有男女之分吗?
夏邑县商丘重庆富侨养生公所这个地址在什么地
海贼王现在出到第几集了?
个人可以放贷吗,我公司是一家投资咨询公司,
北京福瑞达清洗中心在哪里啊,我有事要去这个
鲁山县美利达山地车(平顶山鲁山专卖店)地址在
图要画出来
新洲区武汉兄弟农家菜馆(军安北路)哪位知道具
博冠BOSMA 70/900天文望远镜能看多远
如何用计算器产生随机数
推荐资讯
**王国现在有什么厉害免费的宠物?(老玩家回
民权县商丘华美超市(江山大道)地址在哪里啊
人参果又名蕨麻怎么吃,青海人参果怎么吃 人参
珞笯什么意思
湘阴县岳阳大嘴巴(湘阴店)在哪里啊,我有事要
春天公园景色的句子,散步公园景色诗句
平桥区天安保险股份有限公司(信阳中心支公司)
宜阳县洛阳沙县小吃(文化路店)地址有谁知道?
芦淞区株洲好运来纺织地址在哪里啊
亲们 问一下恩赫都有哪些昵称啊
宛城区南阳汉冶社区泽慧门诊在哪里啊,我有事
怎样可以达到最快的脸部补水效果?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?