我是 C++ 编程的新手,我对包含虚拟成员函数的类的大小有疑问。请通过我的以下代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
class BaseClass
{
private:
int a, b;
public:
BaseClass()
{
a = 10;
b = 20;
}
virtual int area()
{
return 0;
}
};
class DerivedClass1 : public BaseClass
{
int x;
public:
virtual void simple()
{
cout << "inside simple" << endl;
}
};
int main()
{
DerivedClass1 Obj;
cout << sizeof(Obj) << endl; // Displays 16 bytes
return 0;
}
上面的代码显示大小为 16 个字节。根据我的说法,它应该显示 20 个字节,因为两个虚拟指针(一个是从基类继承的,一个是由于它自己的虚函数而添加到派生类本身)+派生类中的三个数据成员等于 20 个字节。所以请解释一下它是怎么回事....