课程
/后端开发
/C++
/C++远征之模板篇
为什么此处要用初始化列表
2017-03-28
源自:C++远征之模板篇 2-6
正在回答
查出来了,因为上面的Time类没有默认构造函数,使用初始化列表是使用拷贝构造函数进行初始化,即是将传入的引用拷贝来在创建Time对象的时候初始化。
若是想在函数中初始化,是先创建一个默认的Time对象后,再本类中进行构造函数中的初始化,因为没有Time没有默认构造函数,所以提前时创建不了Time的对象,所以报错,需要将上面的Time创建一个默认构造函数才可以
以为初始化列表先于构造函数执行,如使用构造函数来赋值,则用Time的构造函数会将m_tTime初始化,出错,故使用初始化列表,此时外部对象初始化m_Time。
举报
本C++教程力求即学即会,所有知识以实践方式讲解到操作层面