我有两个疑问,请帮助我:
答案 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;