要点:尽量延迟变量定义。
定义类变量是有开销的,定义时的构造和出了作用域后的析构。因此,应该尽量迟地定义变量。
进而,应该尽可能迟到该变量有初始化时定义;因为一般的,一次copy构造的开销小于一次确省构造 + 一次赋值函数调用。
对于有循环的情况,在循环内还是循环外定义变量,与构造、析构、赋值的开销以及循环次数n有关。Meyer是特别提出在循环内定义变量还有出了循环该变量不再有效的好处。建议是:缺省在循环内定义变量,除非在循环外定义变量时效率更高。
要点:尽量延迟变量定义。
定义类变量是有开销的,定义时的构造和出了作用域后的析构。因此,应该尽量迟地定义变量。
进而,应该尽可能迟到该变量有初始化时定义;因为一般的,一次copy构造的开销小于一次确省构造 + 一次赋值函数调用。
对于有循环的情况,在循环内还是循环外定义变量,与构造、析构、赋值的开销以及循环次数n有关。Meyer是特别提出在循环内定义变量还有出了循环该变量不再有效的好处。建议是:缺省在循环内定义变量,除非在循环外定义变量时效率更高。