联合体
将多个类型合并到一起省空间
枚举与联合一起使用
匿名联合
类似于无作用域
C++11联合体定义非内建类型
C++11 引入了能够在联合体中使用非内建类型的能力,这些类型包括具有自定义构造函数、析构函数、拷贝构造函数和拷贝赋值运算符的类。
关键特性
构造和析构:在联合体中使用具有非平凡构造函数和析构函数的类型时,必须显式地调用这些函数。这是因为联合体不会自动调用成员的构造函数和析构函数。
有限的类型:虽然 C++11 允许在联合体中使用更复杂的类型,但并不是所有类型都可以用。特别是,不能在联合体中使用具有虚函数或虚基类的类型。
显式管理:你需要手动管理联合体中对象的生命周期,包括合适地调用构造函数和析构函数。
使用类管理union成员
类可以在某个函数的内部