c – 初始化列表问题,重点是std向量
发布时间:2020-12-16 09:36:29 所属栏目:百科 来源:网络整理
导读:新手在这里,为了帮助解决我的C项目中的问题,我正在使用g中的-Weffc选项进行编译. 它给了我数百个关于“警告……应该在成员初始化列表中初始化”的警告 这真的是必要的,因为它会a)花一点时间把它们全部写进来,并且b)当我很高兴在只需要时初始化变量时,让事情
新手在这里,为了帮助解决我的C项目中的问题,我正在使用g中的-Weffc选项进行编译.
它给了我数百个关于“警告……应该在成员初始化列表中初始化”的警告 这真的是必要的,因为它会a)花一点时间把它们全部写进来,并且b)当我很高兴在只需要时初始化变量时,让事情变得更加混乱. 但更具体地说,我如何初始化std :: vector? 是这样的,即只是在括号中加0? class Blade; class Postpro { public: Postpro(string fName) : theFileName(fName),blade(NULL),sizes(10),t(std::vector<double>(0){}; ~Postpro(){}; void test(); private: string theFileName; Blade* blade; int sizes; std::vector<double> t; } 然后在cpp我只是调整矢量大小,如果我想使用它? void Postpro::test() { blade = new Blade; t.resize(37); } 谢谢 解决方法
您可以按照这样做的方式执行此操作,但没有意义 – 默认构造函数执行完全相同的工作.最好使用初始化列表,但如果它导致不可读或不必要的复杂代码,那么初始化(更准确地说,将它们从默认值重置)构造函数体中的成员变量是完全没问题的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |