c++模板中set(date st):t(st)中的:符号
转载:https://zhidao.baidu.com/question/618119741512344012.html
半角冒号是构造函数里的初bai始化列表 开始du的标识。
如楼上所述:
set(date st):t(st){}; //这时定义在类里面,dao如果定义在外面,前面还会有个 set::
//等价与
set(data st)
{
t = st;
}
区别在于,第二种形式 t会多执行一步默认构造函数构造t(因为初始化列表为空,你没写),再在构造函数体语句块中 调用赋值操作符给t再赋一次值。
另外,对于一些特殊情况必须写在初始化列表里,如引用型属性的初始化。因为那才是初始化,语句块中的是初始化后的再赋值。