这一条相对来说比较简单,一句话说来就是在你使用变量是才去定义他。在这一点上书上讲了一个避免对象无用构造的方法,
const string PASSWDTOOSHORT = "";const int MiniPWLegth = 5;string encryptPasswd(const string& passwd){ string encrypted; if (passwd.length() < MiniPWLegth) { return PASSWDTOOSHORT; }// .....//进行加密处理 return encrypted;}
上述代码如果有异常发生,定义的encrypted就没有使用到,就浪费了一次构造很析构的成本。还好这里是string类型,假如这里是我们动态分配的内存呢?就很容易的造成了内存的泄漏。所以说尽量延后变量的定义是很有必要的。
之后就是一个关于变量在循环中和循环外定义的比较。C++的建议仍然是尽量在变量定义处使用,除非你有特别的性能要求。