代码之家  ›  专栏  ›  技术社区  ›  Sijith

如何使用union定义类

  •  3
  • Sijith  · 技术社区  · 16 年前

    我有两个疑问,请帮助我:

    1. 是否可以在联合内部定义类
    2. 是否可以定义没有类名的类
    2 回复  |  直到 16 年前
        1
  •  5
  •   Dewfy    16 年前

    1-有限制的是,该类没有构造函数或析构函数 2-是

    以下代码将两者聚合为一个示例:

    union MyUnion
    {
        class 
        {
            public:
            int a;
            int b;
        } anonym_access;
        double align;
    
    };
    
    int main()
    {
        MyUnion u; //instance checks if it is compileable
    }
    
        2
  •  4
  •   Michael Aaron Safyan    16 年前

    是否可以在联合内部定义类

    联合可以包含任何普通的旧数据(pod)类型。具有非平凡构造函数或析构函数的类型是非pod的,因此不能在联合中使用。对于此类类型,可以使用 boost::variant .

    是否可以定义没有类名的类

    是的,可以创建匿名类,如:

    class
    {
         // ... body of class ...
    } name_of_instance;
    
    推荐文章