C ++中初始化列表中的C风格结构初始化

时间:2011-01-26 15:01:06

标签: c++ struct initialization

是否存在允许您使用struct初始化语法的语法:

struct A { int a; int b; }

int main()
{
    A a = { 1, 2 }; //syntax
    return 0;
}

在初始化列表中? E.g。

class B
{   
  public: 
    B(int a_, int b_) : obj { a_, b_ } { }

  private:
    A obj;
};

1 个答案:

答案 0 :(得分:4)

如果您有一个包含公共成员变量的类,您可以像使用结构一样自动使用它。但是在C ++中,没有办法定义任意初始化列表行为。但是在C ++ 0x中,正如here指出的那样。如果您碰巧使用GCC,GCC 4.4及更高版本支持此功能(如果使用参数-std = c ++ 0x进行编译)