【发布时间】:2015-04-20 09:16:43
【问题描述】:
我有一个类Thing 没有默认构造函数。
现在我们定义另一个类,它现在必须立即初始化数组元素,因为没有默认构造函数,就不能进行后期赋值。所以我们有:
class TwoThings
{
public:
Thing things[2];
TwoThings() : things({Thing("thing 1"),Thing("thing 2")})
{
}
}
这是正确的方法吗?
GCC 可以很好地编译它,而 Clang 没有,说明应该使用“初始化列表”。我尝试了几种替代方法,例如双括号 {{ ... }} 等,但无法获得 Clang 的编译等效项。
如何在 Clang 中初始化没有默认构造函数的数组?
【问题讨论】:
标签: c++ clang array-initialization