当前位置:   article > 正文

C++ 类在内存中的存储方式(一)_c++类的存储

c++类的存储

说了这么久的 C++ 终于说到类了,还是从内存出发来讨论一下 C++ 的类在内存中的存储方式(之前写过一篇内存对齐的文章,类同样在一定程度上遵循内存对齐原则,不过比结构体复杂一下)

如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢

0.空类

class Test {
   

};

Test t0;
cout << sizeof(t0) << endl;
// 运行结果:1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

解释:

  • 空类,没有任何成员变量和成员函数,编译器是支持空类实例化对象的,对象必须要被分配内存空间才有意义,这里编译器默认分配了 1Byte 内存空间(不同的编译器可能不同)

1. 含有成员变量的类

// ====== 测试一 ======
class Test {
   
private:
	int i;
	char c;
	double d;
};

Test t11;
cout << sizeof(t11) << endl;
// 运行结果:16

// ====== 测试二 ======
class A{
   };

class Test {
   
private:
	int i;
	char c;
	double d;
	A a;
};

Test t12;
cout << sizeof(t12) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/244126
推荐阅读
相关标签
  

闽ICP备14008679号