加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);
}

谢谢

解决方法

您可以按照这样做的方式执行此操作,但没有意义 – 默认构造函数执行完全相同的工作.最好使用初始化列表,但如果它导致不可读或不必要的复杂代码,那么初始化(更准确地说,将它们从默认值重置)构造函数体中的成员变量是完全没问题的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读