Thew新的C++標準有辦法做到這一點:
struct foo
{
int array[ 10 ];
int simpleInt;
foo() : array{1,2,3,4,5,6,7,8,9,10}, simpleInt(0) {};
};
測試:https://ideone.com/enBUu
如果你的編譯器不支持此語法的是,你總是可以分配到陣列中的每個元素:
struct foo
{
int array[ 10 ];
int simpleInt;
foo() : simpleInt(0)
{
for(int i=0; i<10; ++i)
array[i] = i;
}
};
編輯:在2011年的預-C的一行的解決方案需要++不同的容器類型,例如C++矢量(其無論如何優選)或升壓陣列,其CA n爲boost.assign「編
#include <boost/assign/list_of.hpp>
#include <boost/array.hpp>
struct foo
{
boost::array<int, 10> array;
int simpleInt;
foo() : array(boost::assign::list_of(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)),
simpleInt(0) {};
};
它似乎是C++。 –
重新標記。繼續......':)' –
@Francis:正如現在寫的,這段代碼在C中不起作用,因爲它使用了一個構造函數。構造函數是一個C++特性。 – unwind