6
在构造函数初始值设定项中初始化成员数组
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; 我相信原因是只能使用=语法来初始化数组,即: int arr[3] = {1,3,4}; 问题 我该怎么做我想做的事情(就是在构造函数中初始化一个数组(而不是在主体中分配元素))。可能吗? C ++ 03标准是否对在ctor初始化程序中初始化聚合(包括数组)有什么特别的建议?还是上述代码的无效性是其他某些规则的必然结果? C ++ 0x初始化程序列表可以解决问题吗? PS:请不要提及向量,boost :: arrays及其对数组的优越性,我很清楚。