首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类的union成员,及其初始化解决方案

2012-05-07 
类的union成员,及其初始化我想做一个物理引擎,里面要有各种形状。由于奇怪的原因,我不能把形状做成不同的派

类的union成员,及其初始化
我想做一个物理引擎,里面要有各种形状。
由于奇怪的原因,我不能把形状做成不同的派生类,所以把这些类型都揉到一起。
结果我发现,不知道怎么初始化一个union成员?

C/C++ code
// 先考虑两个最容易的形状typedef enum {    SHAPE_SPHERE,    SHAPE_BOX} ShapeType;// 球的数据typedef struct {    float radius;} SphereData;// 长方块的数据struct {    float size_x;    float size_y;    float size_z;} BoxData;// 揉到一起typedef union {    SphereData sphere;    BoxData box;} ShapeData;class Shape {public:    // 通过参数类型决定shape的类型。    // 如何初始化一个union的成员?    Shape(const SphereData& data);    Shape(const BoxData& data);    //......    Shapedata data;    ShapeType type;};


[解决办法]
初始化列表或直接在构造函数里赋值
[解决办法]
只能直接在构造函数里赋值。

热点排行