C++结构初始化
问题描述:
的阵列我有以下结构:C++结构初始化
struct localframepos
{
double ipos; //local room frame i(x) coordinate, in mm
double cpos; //local room frame c(y) coordinate, in mm
double rpos; //local room frame r(z) coordinate, in mm
localframepos()
{
ipos = 0;
cpos = 0;
rpos = 0;
}
localframepos(double init_ipos, double init_cpos, double init_rpos) //init constructor
{
ipos = init_ipos;
cpos = init_cpos;
rpos = init_rpos;
}
};
我如何得到以下功能:
localframepos positions[] = { {0, .5, .2},
{4.5, 4, .5} };
答
取出构造。要使用花括号初始化,类型必须是POD。
答
我通常使用
localframepos positions[] = { localframepos(0 , .5, .2),
localframepos(4.5, 4, .5) };
,如果你需要不同的初始化可能性,这是不是很好看,但更灵活。
答
对于C++ 03,你可以写
localframepos positions[] = { localframepos(0, .5, .2),
localframepos(4.5, 4, .5) };
是不是 “必须是POD”? – 2012-08-10 01:16:40
什么是非POD? – CodeKingPlusPlus 2012-08-10 01:16:48
@pwny true ..... – 2012-08-10 01:17:36