烘焙工坊的 “成员初始化列表” 备料术
小林的烘焙工坊用程序管理面包配方,Bread类有面粉量、糖量、发酵时间三个成员变量,构造函数里要给它们设初始值。起初他在函数体里赋值:
cpp
运行
Bread(int flour, int sugar, int time) {
flourAmount = flour;
sugarAmount = sugar;
fermentTime = time;
}
可师傅说这像 “先摆空碗,再往碗里加面粉”,多了一步没必要的操作。后来他改用成员初始化列表(Member Initializer List):
cpp
运行
Bread(int flour, int sugar, int time)
: flourAmount(flour), sugarAmount(sugar), fermentTime(time) {}
这就像直接拿装着对应分量的面粉袋、糖罐往碗里倒,跳过了 “先摆空碗” 的步骤,效率更高。尤其是遇到const成员(比如固定发酵温度const int temp),必须用初始化列表赋值 —— 就像有些原料开封后必须立刻用,不能先放空碗再填。
“成员初始化列表就是烘焙的备料台,” 小林边称重边说,“直接按配方把原料摆到位,省步骤还少出错,烤面包都快了!”