Tag: 集合初始化

在构造函数初始值设定项中初始化成员数组

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以及它们对数组的优越性,我很清楚它们。