Effective C++ - 条款26 - 尽量延后变量定义的出现时间

  1. 变量的类型带有构造和析构时,定义一个变量会承受这两个成本,因此在使用时再定义它。例如,如果执行过程中可能被exception中断导致预先定义的变量没有使用,那么这个成本最好不要提前承担。
  2. 再比如,不要多承担一次赋值的成本。直接在构造时初始化预期的值。
  3. 一种常见的场景:for循环中需要使用某个变量,是预先定义并每轮循环中对其赋值好?还是每轮循环中临时构造好?这取决于具体的构造、析构、赋值成本。如果是前者,那么成本是1个构造+1个析构+n个赋值;如果是后者,成本是n个构造、n个析构(如果没傻到在这里面又进行了额外的赋值)
posted @ 2022-11-06 19:23  ijpq  阅读(17)  评论(0编辑  收藏  举报