Item 26 推迟变量的定义

对于有ctor和dtor的变量,如果定义得过早,就有可能带来不必要的构造和析构,从而带来性能上的损失。

如果中途出现异常而退出,则encrypted没有使用到,白白调用了ctor和dtor。改成下面这样就好多了,不会调用多余的ctor:

对于循环中的变量,考虑稍稍不一样:

两个循环使用情况不一样:

1 ctor + 1 dtor + n assignments
n ctor + n dtor

要具体分析才能知道谁更有效率。

你可能感兴趣的:(it)