C++中运行的 验证vptr指针大小,结果是12?这是为什么?
#include<iostream>
using namespace std;
class Parent
{
public:
Parent()
{
this->a = 0;
}
virtual void func()
{
cout << "Parent::func()..." << endl;
}
virtual void func(int a)
{
cout << "Parent::func(int a)..." << endl;
}
void func1(int a)
{
cout << "Parent::func1(int a)..." << endl;
}
private:
int a;
};
class Parent1:public Parent
{
public:
Parent1():Parent()
{
this->a = 0;
}
virtual void func()
{
cout << "Parent::func()..." << endl;
}
virtual void func(int a)
{
cout << "Parent::func(int a)..." << endl;
}
void func1(int a)
{
cout << "Parent::func1(int a)..." << endl;
}
private:
int a;
};
int main(void)
{
Parent p1;
Parent p2;
cout << "sizeof(p1)" << sizeof(p1) << endl;//16
cout << "sizeof(p2)" << sizeof(p2) << endl;//16
return 0;
}