你的是唯一的方法.另一方面,尽量避免这种情况.最好将函数(甚至其他对象)用作工厂.这样,您就可以控制创建时间.
没有办法直接这样做.非POD对象将始终默认构造.std::fill
往往是一个很大的帮助.您可能还想查看分配器和std::uninitialized_fill
.
在构造函数中使用初始化列表:
class Bar { Foo foo; Bar() : foo(3) { } };
实际上,静态成员必须在类外定义:
class Bar { static Foo foo; }; Foo Bar::foo(3);