先贴代码:
#include cout<<"after insert five elements:"< return 0; 结果如下: sizeof(a):20 从上面看到: 1.sizeof计算类的大小的话需要判定成员变量出现的顺序。 2.static 静态成员变量不占sizeof的大小 3.容器对象的大小就是类的大小,不管对象里有多少元素。 4.数组的sizeof就是元素类型的大小和数组大小的乘积。 另外,sizeof可应用于任何变量名、类型名或常量值。sizeof是一个运算符,而不是函数。在编译时起作用,而不是运行时,所以不会造成性能损失,sizeof只有在操作类型名时才需要加括号,其他时候可加可不加。
#include
#include
#include
#include
#include
using namespace std;
class C1
{
private:
int a;
int f;
public:
float b;
char c;
bool e;
short d;
void getA()
{
int c;
}
};
class C2
{
private:
int a;
int f;
public:
float b;
char c;
short d;
bool e;
void getA()
{
int c;
}
};
class C3
{
public:
static int a;
int b;
};
class C4:public C3
{
static int a;
};
class C5:public C3
{
static int b;
};
int main(int argc, char *argv[])
{
vector
deque
int a[5] = {1,2,3,4,5};
int *b;
cout<<"sizeof(a):"<
{
v_int.push_back(i);
d_int.push_back(i);
}
cout<<"sizeof(v_int):"<
}
sizeof(b):4
sizeof(C1):16
sizeof(C2):20
sizeof(C3):4
sizeof(C4):4
sizeof(C5):4
sizeof(vector_int):12
sizeof(deque_int) :40
sizeof(vecotr_char):12
sizeof(deque_char):40
sizeof(v_int):12
sizeof(d_int):40
after insert five elements:
sizeof(v_int):12
sizeof(d_int):40