C++中类的内存空间大小(sizeof)分析
cout < sizeof(derived_test) < endl; 测试虚继承的类的大小: class A class B : public virtual A class C: public virtual B int main() 下面采用一个比较综合的例子说明一下操作系统以及各种综合的影响分析。 #include class test class derived_test:public test class base int base::get_count() int base::refrence_count = 0; class new_base int new_base::get_count() class derived: public base class new_derived:public new_base int main() 上面在windows和linux的结果分别如下:
{
char i[3];
public:
virtual void a(){};
};
{
char j[3];
public:
virtual void b(){}
};
{
char k[3];
public:
virtual void c(){}
};
{
cout < "sizeof(A): " < sizeof(A) < endl;
cout < "sizeof(B): " < sizeof(B) < endl;
cout < "sizeof(C): " < sizeof(C) < endl;
return 0;
}
#include
#include
{
public:
test();
virtual ~test();
virtual void get_a_c();
private:
int a;
char c;
};
{
public:
virtual ~derived_test();
private:
doubled ;
};
{
private:
char a;
static int refrence_count;
std::string name;
double price;
std::vector
public:
base();
virtual ~base();
static int get_count();
};
{
return refrence_count;
}
{
private:
char a;
double price;
std::vector
std::string name;
static int refrence_count;
public:
new_base();
virtual ~new_base();
static int get_count();
};
{
return refrence_count;
}
int new_base::refrence_count = 0;
{
private:
int min_qty;
double discount;
static int newp;
public:
derived();
virtual ~derived(){};
};
{
private:
doublediscount;
int min_pty;
static int newp;
public:
new_derived();
virtual ~new_derived(){}
};
{
std::cout < "The size of test is " < sizeof(test) < std::endl;
std::cout < "The size of derived_test is " < sizeof(derived_test) < std::endl;
std::cout < "The size of base is " < sizeof(base) < std::endl;
std::cout < "The size of new_baseis " < sizeof(new_base) < std::endl;
std::cout < "The size of derived is " < sizeof(derived) < std::endl;
std::cout < "The size of new_derived is " < sizeof(new_derived) < std::endl;
return 0;
}
windows:
Linux:
从上面的结果可以之知道在两个系统下,结果是不一样的。说明操作系统也对类的存储空间大小有较大的影响。
C++内存空间sizeo 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)