C++成员函数的内存分配问题
来源:互联网 发布:mac的音乐文件夹 编辑:程序博客网 时间:2024/04/29 00:18
转载于:http://blog.csdn.net/caomiao2006/article/details/4934013?reload
静态成员函数和静态成员变量不属于某个具体的对象,属于类;
也就是说在类加载(即程序初始化,类还没有产生任何一个具体对象)的时候就已经为静态成员函数在内存分配了代码区空间;
一个类所有的对象调用的成员函数都是同一个代码段的;
当程序构造一个类的对象(第一次构造对象)时,就会给成员函数(非静态成员函数)分配代码区空间,之后构造的对象只给非静态的成员变量分配空间,都不给成员函数分配代码区空间;当对象析构时也不释放代码区的空间(除非这个类的所有对象都析构了,才释放这个这个类的非静态成员函数的代码区空间)。
对上述说法的更正:
1、所有函数代码都在程序编译连接时放在一块,称为代码区,无论是静态还是非静态函数都一样,不存在 "构造一个类的对象(第一次构造对象)时,就会给成员函数(非静态成员函数)分配代码区空间 ",而是程序加载时,所有的代码已在内存空间存在. 只有函数中用到的局部变量才是函数调用时分配空间.
2、静态成员函数和成员函数之间根本的区别是:静态成员函数实际上是一个全局函数,不依赖一个类的对象.函数定义时之所以把静态成员函数定义在类中,是一种弱逻辑. 普通成员函数依赖一个类的对象,也就是它有this指针,必须指向一个类的对象.
3、建立类的对象时只是给成员变量分配空间,析构时也只回收这些空间,代码段里的函数以及静态函数和变量都是在程序结束后回收
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- C++成员函数的内存分配问题
- 【转】C++成员函数的内存分配问题
- c++类成员函数内存分配问题
- C++类对象成员变量和成员函数内存分配的问题
- C++类对象成员变量和成员函数内存分配的问题
- c的内存分配函数
- 关于构造函数析构函数以及成员变量内存分配顺序的一些问题
- C的内存分配问题
- c的内存分配问题
- C的内存分配问题
- c++成员函数的内存分配及this指针浅析
- C语言的动态内存分配函数
- C语言中分配内存的函数
- 分配内存的函数C和C++
- C语言的内存分配calloc()函数
- jSP错误
- 随读笔记 算法导论 java 版
- Free函数的参数一定要是malloc返回的那个指针
- 常见的查找算法
- MFC/VC++中操作XML(MFC、SDK)解析
- C++成员函数的内存分配问题
- 商学院能学到什么
- Aptitude cache backup howto
- 精通css(5)-布局
- Modelsim使用
- 几种排序算法的总结
- crontab 运行 java程序 不输出错误的问题
- ARC机制详解
- Ubuntu系统:sudo出现sudo:must be setuid root问题的解决方法