空对象占用的内存空间

类中成员变量和成员函数分开存储
1
#include<bits/stdc++.h> 2 using namespace std; 3 class person 4 { 5 6 }; 7 8 void test() 9 { 10 person p; 11 // 空对象占一个字节为什么呢? 12 // C++为每个空对象分配一个字节的内存空间,是为区分空对象占内存的位置 13 cout << "sizeof of null obj is " << sizeof(p) << endl; 14 } 15 16 int main() 17 { 18 test(); 19 return 0; 20 }

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 class person
 4 {
 5   int age;//非静态成员变量属于类对象上的 ,剩下都不是 
 6   static int va;//静态成员变量不属于类对象上的 
 7   void func(){
 8   }
 9   static void fun(){
10   } 
11 };
12 
13 void test()
14 {
15     person p;
16 //    空对象占一个字节为什么呢?
17 //    C++为每个空对象分配一个字节的内存空间,是为区分空对象占内存的位置 
18     cout << "sizeof of null obj is " << sizeof(p) << endl;
19 }
20 
21 void test01()
22 {
23     person p;
24     cout << "sizeof of null obj is " << sizeof(p) << endl;
25 } 
26 
27 int main()
28 {
29     test01();
30     return 0;
31 }
View Code

 

posted @ 2019-09-25 14:26  ChunhaoMo  阅读(413)  评论(0编辑  收藏  举报