当前位置 : 主页 > 编程语言 > c语言 >

C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数

来源:互联网 收集:自由互联 发布时间:2023-09-06
[cpp] 1. #include iostream 2. 3. using namespace std; 4. 5. class CSimple 6. { 7. public: 8. //静态成员变量 9. static const int sx = 0; 10. //静态函数 11. static void SF1() 12. { 13. } 14. public: 15. //成员变量 16. int x; 17.
[cpp]  
1. #include <iostream>  
2. 
3. using namespace std;  
4. 
5. class CSimple  
6. {  
7. public:  
8.  //静态成员变量  
9.  static const int sx = 0;  
10.  //静态函数  
11.  static void SF1()  
12.  {  
13.  }  
14. public:  
15.  //成员变量  
16.  int x;  
17. public:  
18.  //成员函数  
19.  void F1()  
20.  {  
21.   cout<<"I'm from CSimple::F1()"<<endl;  
22.  }  
23.  void F2()  
24.  {  
25.   cout<<"I'm from CSimple::F1()"<<endl;  
26.  }  
27. public:  
28.  //构造函数,C++语法不允许获取构造函数和析构函数地址,要分析其地址,只能查看生产的汇编代码了。  
29.  CSimple()  
30.  {  
31.  }  
32.  //析构函数  
33.  ~CSimple()  
34.  {  
35.  }  
36. };  
37. 
38. typedef void (CSimple::*Func)();  
39. 
40. union  
41. {  
42.  Func f;  
43.  void *addr;  
44. }ut;  
45. 
46. int main(int argc, char** argv)  
47. {  
48.  cout<<"main()函数的地址是       :"<<std::hex<<std::showbase<<main<<endl;  
49. 
50.  ut.f = &CSimple::F1;  
51.  cout<<"成员函数F1()的地址是     :"<<std::hex<<std::showbase<<ut.addr<<endl;  
52.  ut.f = &CSimple::F2;  
53.  cout<<"成员函数F2()的地址是     :"<<std::hex<<std::showbase<<ut.addr<<endl;  
54. 
55.  cout<<"静态成员函数SF1()的地址是:"<<std::hex<<std::showbase<<CSimple::SF1<<endl;  
56.  cout<<"静态成员变量sx的地址是   :"<<std::hex<<std::showbase<<&CSimple::sx<<endl;  
57. 
58.  cout<<"CSimple类型实例的大小    :"<<sizeof(CSimple)<<endl;  
59.  CSimple* pObj = new CSimple();  
60.  cout<<"对象指针变量的地址是     :"<<std::hex<<std::showbase<<&pObj<<endl;  
61.  cout<<"新建对象的地址是         :"<<std::hex<<std::showbase<<pObj<<endl;  
62.  cout<<"成员变量的地址是         :"<<std::hex<<std::showbase<<&pObj->x<<endl;  
63.  //CSimple *p = new CSimple();  
64.  //(p->*f)();  
65.  delete pObj;  
66.  cin>>argc;  
67.  return 0;  
68. }

 

运行结果:

 

C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数_构造函数

C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数_构造函数_02

上一篇:白话算法之快速排序
下一篇:没有了
网友评论