我正在尝试为此类编写静态初始化器:
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 }
};
关于c++ - 静态初始化数组 union 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24237122/