我正在尝试为此类编写静态初始化器:

class Cube3x3
{
    union CornerData
    {
        u8  mData8[8];
        u32 mData16[4];
        u32 mData32[2];
        u64 mData64;
    };

    union EdgeData
    {
        u8  mData8[12];
        u32 mData32[3];
    };

    CornerData mCorners;
    EdgeData mEdges;

    static const Cube3x3 sSolved;
};

我已经尝试过了,还有很多变体,但似乎我尝试的任何方法都行不通。
const Cube3x3 Cube3x3::sSolved =
{
    { 0, 0, 1, 0, 0, 0, 1, 0 },
    { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 }
};

有谁知道如何静态地初始化它?

最佳答案

如果您愿意将Cube3x3从类更改为结构,则可以使用:

const Cube3x3 Cube3x3::sSolved = {0};

更新

使用结构时,也可以使用非零值初始化成员,就像在更新的问题中一样。
const Cube3x3 Cube3x3::sSolved =
{
    { 0, 0, 1, 0, 0, 0, 1, 0 },
    { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 }
};

09-26 06:57