3

我有以下结构:

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} };
4

3 回答 3

3

删除构造函数。要使用花括号初始化,类型必须是 POD。

于 2012-08-10T01:14:29.807 回答
0

我通常使用

localframepos positions[] = { localframepos(0  , .5, .2),
                              localframepos(4.5, 4, .5) };

这不是那么好看,但如果您需要不同的初始化可能性,则更加灵活。

于 2012-08-10T02:05:37.960 回答
0

对于 C++03,您可以编写

localframepos positions[] = { localframepos( 0, .5, .2 ),
                              localframepos( 4.5, 4, .5 ) };
于 2012-08-10T02:09:56.273 回答