#include <iostream>
using namespace std;
class Fruit {
int no;
double weight;
char key;
public:
void print() { }
virtual void process() { }
};
class Apple: public Fruit {
int size;
char type;
public:
void save() { }
virtual void process() { }
};
int main() {
cout << "sizeof(Fruit) = " << sizeof(Fruit) << endl;
cout << "sizeof(Apple) = " << sizeof(Apple) << endl;
return 0;
}
在GCC 4.9.2 32bit下运行结果:
先分析一下上面的代码,如图:
可知,当有精度高的类型出现时,低精度自动补位到高精度,而char类型如果首次补成8字节后,后面还有char类型的声明,不会再开一个8字节的空间,而是直接在之前多出来的位置补上。
简单做个小知识,这周对C++没多接触。