变量定义原则
当我们定义了一个变量时,特别是当这个变量需要构造和析构时我们需要承担这个变量的析构和构造成本,因此,我们定义变量的原则是当我们要使用该变量是我们才定义它。
特别是抛出异常的程序中当我们定义变量时我们就需要考虑该异常是否一定会被用到,如下的程序:
变量encrypted不一定会被用到,因为一旦发生异常,很有可能程序将会结束该函数的调用或者终止程序,所以正确的做法是将变量定义再异常抛出代码段的后面。如下的操作:
使用拷贝构造函数
我们定义变量有时我们需要将变量的值进行特定的初始化,如果用如下方式进行
对于变量encrypted而言,一种更合理的做法是直接调用string的拷贝构造函数,这样便不需要多进行一次默认构造。
但是对于循环中变量我们该怎么用能?
上述两种操作我们首先明确他们的overhand:
如果一个赋值的成本低于一次构造加一次析构,那么做法A是可行的,否则做好是选用做法B,为什么做法B的选择更好呢?
因为做法A变量的作用域将会渗透到更宽的作用域,对代码的维护和修改都可能造成冲突。