【发布时间】:2012-03-05 09:41:55
【问题描述】:
我可以在初始化 struct Foo 时这样做:
Foo foo = {bunch, of, things, initialized};
但是,我不能这样做:
Foo foo;
foo = {bunch, of, things, initialized};
那么,两个问题:
- 为什么我不能做后者,前者是只用于初始化的特殊构造函数吗?
-
我怎样才能做类似于第二个例子的事情,即在一个结构已经初始化之后,在一行代码中声明一堆变量?我试图避免对具有许多变量的大型结构执行此操作:
Foo foo; foo.a = 1; foo.b = 2; foo.c = 3; //... ad infinitum
【问题讨论】:
-
"前者是只用于初始化的特殊构造函数吗?" 没错,就是所谓的聚合初始化。
-
C 还是 C++?选择一个。
-
C(++) 在某些领域仍然非常原始。
-
@jim :它们是不同的语言,因此需要提出不同的问题。对于这个问题,请选择一种语言。
-
@jim 在 C 和 C++ 中寻求解决方案使其成为两个不同的问题,尽管它们具有共同的主题。您一次只能问一个问题。我给了 C 的答案,但是当我意识到这个问题有两个标签时,我删除了它。