循环中声明的变量
2012-11-27 00:00
218 查看
今天在做100-45的时候,遇到了个小问题不是特别清楚。就是在循环中,我使用了stl的queue建立了一个变量q。然后,我不知道在一次循环结束的时候,是否需要将队列q中的元素清除,换句话说,我不清楚,这个q的生命周期是什么。我开始还以为q会一直等到整个函数结束的时候,才会析构。
后来为了验证这个问题,我就写了个测试的小程序试了试,贴上代码:
这就看到,原来对象f的生命周期仅仅就是在一次循环之内的。。我猜想也就是在一对大括号之内(命名空间之内?)。
后来就突然想到,前几天看过的effective c++中有这样的一条记录:
第26条,尽量延后变量定义式的出现时间。其中就举了一个例子,讨论是在循环体中定义变量,还是在循环体外定义变量,然后在循环体中使用(赋值)。然后就豁然开朗了。
在这里做下记录,方便以后复习。
后来为了验证这个问题,我就写了个测试的小程序试了试,贴上代码:
#include <iostream> using namespace std; class Father{ private: int a; public: Father(){ cout << "hello" << endl; } ~Father(){ cout << "bye" << endl; } }; int main(){ for(int i = 0 ; i < 10 ; ++i){ Father f; } system("pause"); return 1; }运行结果如图:
这就看到,原来对象f的生命周期仅仅就是在一次循环之内的。。我猜想也就是在一对大括号之内(命名空间之内?)。
后来就突然想到,前几天看过的effective c++中有这样的一条记录:
第26条,尽量延后变量定义式的出现时间。其中就举了一个例子,讨论是在循环体中定义变量,还是在循环体外定义变量,然后在循环体中使用(赋值)。然后就豁然开朗了。
在这里做下记录,方便以后复习。
相关文章推荐
- 在for循环体内声明的变量,每次进入循环,都不保持旧值而是重新声明
- 遍历json对象的属性和值,并循环动态定义声明变量
- var声明用来计数的循环变量泄漏为全局变量问题
- for循环变量声明为 final
- 快学Scala-变量声明、常用类型、条件与块表达式、循环、方法函数的调用
- Javascript中的循环变量声明,到底应该放在哪儿?
- 读书笔记之 将所有增强for语句的循环变量声明为final类型
- Java中循环声明变量方法
- for循环中的变量声明1
- Java中循环声明变量方法
- for循环绑定事件时,var和let声明循环变量的区别
- 变量声明或定义在循环内外
- 浅析四种常见的Javascript声明循环变量的书写方式
- for循环中声明变量的一个问题回顾
- 在 JavaScript 核心语言中,全局对象的预定义属性都是不可枚举的,所有可以用 for/in 循环列出所有隐式或显式声明的全局变量
- oracle存储过程、声明变量、for循环
- 关于变量在循环内声明还是在循环外声明
- linux shell 学习笔记--变量声明与赋值,循环
- 变量声明到底在循环外部好还是在循环内部好?
- 浅析四种常见的声明循环变量的书写方式