联合如何用于定义类

时间:2010-05-09 09:36:46

标签: c++ model-view-controller visual-c++

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

  1. 是否可以在union
  2. 中定义一个类
  3. 是否可以定义没有类名的类

2 个答案:

答案 0 :(得分:5)

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

以下代码聚合作为示例:

union MyUnion
{
    class 
    {
        public:
        int a;
        int b;
    } anonym_access;
    double align;

};

int main()
{
    MyUnion u; //instance checks if it is compileable
}

答案 1 :(得分:4)

  

是否可以在union

中定义一个类

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

  

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

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

class
{
     // ... body of class ...
} name_of_instance;