码迷,mamicode.com
首页 > 其他好文 > 详细

多态的实现原理

时间:2020-01-12 13:18:31      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:对象   std   out   using   ret   ima   基类   存在   iostream   

#include<iostream>
using namespace std;

class A
{
public:
int i;
virtual void func(){}
virtual void func2(){}
};

class B:public A
{
int j;
void func(){}
};

int main()
{
cout<<sizeof(A)<<","<<sizeof(B)<<endl;
return 0;
}

技术图片

在64位环境下,指针占8个字节,但是该程序是运行在32位VC++中,所以指针占4个字节,整型数占4个字节,所以在基类中,基类的大小是4+4=8个字节。

知识点:
派生类对象中包含基类成员变量,而且基类成员变量的存储位置位于派生类对象新增的成员变量之前。
所以,派生类的大小是4+4+4=12个字节
为何没存在字节对齐的原因?

多态的实现原理

标签:对象   std   out   using   ret   ima   基类   存在   iostream   

原文地址:https://www.cnblogs.com/wsdsg/p/12182279.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!