只要定义了一个变量而其类型带有一个构造函数或析构函数,那么程序的控制流到达这个变量定义式时,便得承受构造成本;当这个变量离开作用域时,便承受析构成本。即使变量最终还是未被使用,仍需要耗费这些成本。
注:
- 延后定义,防止变量未被使用;
- 声明变量,赋初始,防止调用默认构造函数再赋值的开销;
- 涉及到循环操作,有2种写法的成本:
- 1个构造函数 + 1个析构函数 + n个赋值操作
- n个构造函数 + n个析构函数
总之,尽可能延后变量定义式的出现,增加程序的清晰度并改善程序效率。
只要定义了一个变量而其类型带有一个构造函数或析构函数,那么程序的控制流到达这个变量定义式时,便得承受构造成本;当这个变量离开作用域时,便承受析构成本。即使变量最终还是未被使用,仍需要耗费这些成本。
注:
总之,尽可能延后变量定义式的出现,增加程序的清晰度并改善程序效率。