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

C ++ 03の場合、次のように記述できます。

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

普段使っています

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

これは見栄えがよくありませんが、さまざまな初期化の可能性が必要な場合ははるかに柔軟です。

于 2012-08-10T02:05:37.960 に答える