代码之家  ›  专栏  ›  技术社区  ›  ghborrmann

如何在c++构造函数初始值设定项列表中初始化非内置类型的数组?

  •  -2
  • ghborrmann  · 技术社区  · 7 年前

    在C++中,我试图在构造函数初始值设定项列表中初始化非内置类型的数组。从代码开始:

    class bar {
      int i1,i2;
    public:
      bar(i1,i2);
    }
    class foo {
      bar bar1,bar2;
    public:
      foo(int a, int b, int c, int d) : bar1(a,b),bar2(c,d) {};
    }
    

    我想用数组替换bar1和bar2:

    bar allbars[2];
    

    如何更改初始值设定项列表以初始化所有条?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Labonneguigue    7 年前

    为创建适当的构造函数 bar 第一

    class bar {
      int i1,i2;
    public:
      bar(int one, int two)
      : i1(one)
      , i2(two)
      {};
    };
    
    class foo {
      bar allbars[2];
    public:
      foo(int a, int b, int c, int d)
      : allbars{ bar(a,b), bar(c,d) }
      {};
    };