本人在很多书上看到说类的内存大小由其成员变量决定,但我做的一简单内存测试
却发现如下:
#include<iostream>
#include<ctype.h>
#include<string.h>class a
{
public:
a(){;}
a(int i){;}
virtual ~a(){;}
int i,j;
int f1(){;}
virtual  double f2(){ return i;}
char *p1;
char c1;
int *k;
};class b:public a

public:

virtual double f2(){return 0;}
double f4();
char *pp;
};class c:public b
{
public:
virtual int ff1()=0;
virtual double f2();
double f4();
char a;
};class d
{
};int main()
{
char *p2="WESOFT";
//(*p2)++;
cout<<"p2 now is : "<<*p2<<endl;
int l;
a a1;
l=sizeof(a1);
cout<<"class a memory is: "<<l<<endl;
cout<<"class b memory is: "<<sizeof(b)<<endl;
cout<<"class c memory is: "<<sizeof(c)<<endl;
         cout<<"class d memory is: "<<sizeof(d)<<endl;

return 0;
}最后输出如下:
         class a memory is: 24
class b memory is: 28
class c memory is: 32
         class d memory is: 1
这样的话好象与类的大小由成员变量决定不符。不知何解?请高手指定下。