C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
来源:互联网 发布:360浏览器mac官方下载 编辑:程序博客网 时间:2024/05/18 00:52
- #include <iostream>
- using namespace std;
- class CSimple
- {
- public:
- //静态成员变量
- static const int sx = 0;
- //静态函数
- static void SF1()
- {
- }
- public:
- //成员变量
- int x;
- public:
- //成员函数
- void F1()
- {
- cout<<"I'm from CSimple::F1()"<<endl;
- }
- void F2()
- {
- cout<<"I'm from CSimple::F1()"<<endl;
- }
- public:
- //构造函数,C++语法不允许获取构造函数和析构函数地址,要分析其地址,只能查看生产的汇编代码了。
- CSimple()
- {
- }
- //析构函数
- ~CSimple()
- {
- }
- };
- typedef void (CSimple::*Func)();
- union
- {
- Func f;
- void *addr;
- }ut;
- int main(int argc, char** argv)
- {
- cout<<"main()函数的地址是 :"<<std::hex<<std::showbase<<main<<endl;
- ut.f = &CSimple::F1;
- cout<<"成员函数F1()的地址是 :"<<std::hex<<std::showbase<<ut.addr<<endl;
- ut.f = &CSimple::F2;
- cout<<"成员函数F2()的地址是 :"<<std::hex<<std::showbase<<ut.addr<<endl;
- cout<<"静态成员函数SF1()的地址是:"<<std::hex<<std::showbase<<CSimple::SF1<<endl;
- cout<<"静态成员变量sx的地址是 :"<<std::hex<<std::showbase<<&CSimple::sx<<endl;
- cout<<"CSimple类型实例的大小 :"<<sizeof(CSimple)<<endl;
- CSimple* pObj = new CSimple();
- cout<<"对象指针变量的地址是 :"<<std::hex<<std::showbase<<&pObj<<endl;
- cout<<"新建对象的地址是 :"<<std::hex<<std::showbase<<pObj<<endl;
- cout<<"成员变量的地址是 :"<<std::hex<<std::showbase<<&pObj->x<<endl;
- //CSimple *p = new CSimple();
- //(p->*f)();
- delete pObj;
- cin>>argc;
- return 0;
- }
运行结果:
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- 静态成员变量成员函数
- 类的 静态成员 --- 静态成员变量 、 静态成员函数
- 静态成员变量和静态成员函数
- 静态成员函数和静态成员变量
- 静态成员变量 和 静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量与静态成员函数
- 静态成员变量 与 静态成员函数
- 静态成员变量与静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- C++静态成员变量,静态成员函数
- 静态成员变量和静态成员函数
- Java中排序的实现(复习)
- 拓扑排序优化
- rails上传文件时,实现form表单自动提交
- delphi2009(10,xe)下indy10发送utf8字符串
- 深入讨论C++的enum
- C++程序运行时内存布局之----------简单类实例,成员变量,成员函数,静态成员变量,静态成员函数
- myeclipse创建maven工程报错解决
- 类之Prototype.js学
- DALSA Coreco - 图像处理软件(Sapera LT )
- 开源GIS:GeoServer和MapServer的对比
- lamp使用php处理上传文件,调用move_uploaded_file函数遇到目录写权限问题及解决过程
- Linux下查看文件和文件夹大小
- VC的MySQL编程
- The Importance of Writing a Paper