多态的实现原理
Posted wsdsg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态的实现原理相关的知识,希望对你有一定的参考价值。
#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个字节
为何没存在字节对齐的原因?
以上是关于多态的实现原理的主要内容,如果未能解决你的问题,请参考以下文章