延后变量的定义

来源:互联网 发布:excel 数据有效性 编辑:程序博客网 时间:2024/04/30 13:36

原来只是理解了这个的一部分,就是在使用前定义可以更明确的调用变量,不产生没有使用的变量,但是关于在循环中该如何处理这个问题一直没有考虑过,今天看了effectve c++才恍然大悟,先看

假设C是个定义好的类

case1:

 

C ob;

while(i!=n) {

    ob = 取决于i的某个值;

    ++i;

}

 

case2:

while(i!=n){

    C ob(取决于i的某个值);

    ++i;

}

我们先来看两个case的代价

case1: C constructor * 1, assignment * n,C destructor * 1

case2: C constructor * n, C destructor * n

原来一直觉得应该用case1来解决循环中变量的定义,但是case1中的那个变量ob的作用域比case2可能大很多,所以在不是非常要求效率的系统上,而且确定赋值操作比构造操作的代价小的时候才使用case1。

又纠正了一个概念~~

 

原创粉丝点击