条款26:尽可能延后变量定义式的出现时间
-
尽可能延后变量定义式的出现时间,因为有些变量定义了,可能未被使用,如“异常抛出,导致很多代码没有运行,这就有可能导致定义的变量未被使用”。定义的变量未使用,但是你仍然需要构造和析构,这就进行了无用功。
-
由于
std::string encrypted(password);
优于std::string encrypted; encrypted=password;
,所以不只应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止。 -
使用在循环中的变量应该定义在循环外还是循环内:除非(1) 你知道赋值成本比“构造+析构”成本低,(2) 且你正在处理代码中对于效率高度敏感,否则你应该将变量定义在循环内。
条款27:尽量少做转型动作
旧式转型操作:
- (T) expression