c++primer 13.7联合

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也可以有构造/析构函数,也可以包含访问标识符,但不能包含虚函数或静态成员变量/方法.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值