C++避免输入构造函数

我有一个带有例如 16 个字段的结构,并且想稍后用初始化器列表初始化该结构。

有没有办法避免在构造函数中重新输入所有这些(假设我想以确切的顺序初始化所有这些)?即使它们都是普通的旧数据?

除了乏味之外,在我看来,还有一些我不知道的方法可以做到这一点。

struct Foo {
  int  A;
  int  B;
  Bar* C;
  // ...

  Foo (
   int  A,
   int  B,
   Bar* C,
   // ...
  ) :
   A(A),
   B(B),
   C(C),
   // ...
  {} 

}

Foo MyFoo = {
 // ...
}

回答

由于您的数据成员是公开的,您实际上可以通过减少您拥有的代码量来做到这一点。简单地不提供构造函数:

struct Foo {
  int  A;
  int  B;
  Bar* C;
  // ...
};

然后你可以构造一个Foo这样的:

Foo foo{1, 2, new Bar{}, /* ... */ };

或者

Foo foo = {1, 2, new Bar{}, /* ... */ };


以上是C++避免输入构造函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>