1是一种特殊的类
2声明
union 联合名{
成员列表;
};
3.所有的成员用一个内存空间,分配时,按照最大的来
4.可以给成员定义访问权限
union a{
public:
a(int x):b(x){}
char d;
int b;
private:
int c;//外界不能访问
};
5.不能有静态数据成员和引用成员,如果成员是类类型,这个类还不能有构造,析构,拷贝赋值操作符
6.union可以有构造.析构和普通函数
7.通过一个不适当的数据成员意外地获取到当前存在UION中的值,有可能导致程序错误,最好给他们做一组访问函数
4.如果不用union声明变量,可以匿名
union {成员列表};
在被匿名的地方直接访问
此外,匿名union还具有以下约束:
1).因为匿名联合不使用点运算符,所以包含在匿名联合内的元素必须是数据,不允许有成员函数,也不能包含私有或受保护的成员;
2).全局匿名联合必须是静态(static)的,否则就必须放在匿名名字空间中.
数据类型的转换,并非union的专长,只是一个可资利用的特性而已.因为,采用union进行类型间转换极易受平台影响
2.union也可以有构造/析构函数,也可以包含访问标识符,但不能包含虚函数或静态成员变量/方法.
c++primer 13.7联合
最新推荐文章于 2022-03-23 21:27:29 发布