我很惊讶这不起作用:
union DlDatum
{
float mFloat;
s32 mInteger;
};
class DlDbE
{
public:
DlDbE( float f ) : mData.mFloat( f ) {};
private:
DlDatum mData;
};
Run Code Online (Sandbox Code Playgroud)
有没有办法在c ++构造函数mem-initializer列表中初始化union?
更新:答案是为union创建构造函数.不知道可以做到的.这是我做的:
union DlDatum
{
float mFloat;
s32 mInteger;
bool mBoolean;
u32 mSymbol;
u32 mObjIdx;
DlDatum( ) : mInteger( 0 ) {}
DlDatum( float f ) : mFloat( f ) {}
DlDatum( s32 i ) : mInteger( i ) {}
DlDatum( bool b ) : mBoolean( b ) {}
DlDatum( u32 s ) …Run Code Online (Sandbox Code Playgroud) c++ ×1