union即为联合,它是一种特殊的类。通过关键字union进行定义,一个union可以有多个数据成员。例如c++11中union除了继承c语言的数据共享内存之外,行为上越来越像一个类,比如成员默认是public类型。在C++11以后,很多基础语法都进行了修正。其中 union 的行为向类对象进行了发展,在兼容原有语法定义的基础上进行了扩充:。对于全部成员都是 build-in 的 union 类,还可以向以往一样进行使用:对于全部包含非 built-in 的 union 类,则:。第1、2点的意思是,如果成员数据类型是非平凡的,则 union 类需要定义相关的构造函数、复制函数、移动构造、移动赋值函数、析构函数等。
暂无评论