对象内存空间分配与初始化
来源:互联网 发布:淘宝网乒乓球桌多少钱 编辑:程序博客网 时间:2024/06/05 02:13
在C++中,一个变量可以在某个程序范围内的任何地方定义,
所以在这个变量的定义之前是无法对它分配内存空间的。
通常,C++编译器可能像C编译器一样,在一个程序块的开头
就分配所有的内存。这些对我们来说是无关紧要的,因为作为
一个程序员,我们在变量定义之前总是无法得到存储空间的。
即使存储空间在块的一开始就被分配,构造函数也仍然要到对象
的定义时才会被调用,因为标识符只有到此时才有效。编译器甚
至会检查我们有没有把一个对象的定义放到一个条件块中,比如在switch块
中声明,或可能被goto跳过的地方。
下面程序,如果去除goto和case 2的注释,会产生编译时错误。
#include <iostream>using namespace std;class X {public:X() {}};void f(int i) {if(i < 10) {//goto jump1;}X x1;jump1:switch(i) {case 1:X x2;break;//case 2:X x3;break;}}int main() {return 0;}
在上面的代码中,goto和switch都可能跳过构造函数的调用点,
然而这个对象会在后面的程序块中起作用,这样,构造函数就
没有被调用,所以编译器给出了一条错误信息。这就确保了对
象在产生的同时被初始化。
- 对象内存空间分配与初始化
- 内存空间与分配
- 内存空间与分配
- 对象分配空间与初始化
- 初始化指针是否需要分配内存空间
- OC对象初始化-为对象分配空间初始化方法与对象初始化
- 分配内存空间
- 分配内存空间
- 分配内存空间
- 分配和初始化对象
- JAVA与JAVASCRIPT数组内存空间分配区别
- java堆栈与String分配内存空间
- PGA内存空间的分配与回收
- Java中引用与内存空间分配
- c++内存空间分配与指针探讨
- Java内存空间的分配与回收
- C语言calloc()函数:分配内存空间并初始化
- C语言calloc()函数:分配内存空间并初始化
- JSP基础----注释
- Android 听筒播放 适配(摩托)
- redis学习总结之主从复制
- 第二部分——第十一章/泛型算法
- Linux远程编译
- 对象内存空间分配与初始化
- JavaScript前端开发框架
- JSP基础----Scriptlet
- Linux网络协议栈 -- socket bind 地址绑定
- Mysql 维护的一点整理
- Android关于SD卡中多层目录的创建
- Java基础回顾(四)
- JRuby 1.7 Preview 1发布:默认使用Ruby 1.9,通过Invokedynamic改进了性能
- bochs调试指令