联合:节省空间的类

        联合union)是一种特殊的类。一个union对象可以有多个数据成员,但在任何时候,只有一个成员可以有值。当将一个值赋给union对象的一个成员的时候,其它所有成员都变为未定义的。每个union对象的分配得到的空间大小在编译时是固定的,至少与union的最大数据成员一样大。

        像任何类一样,union可以指定保护标记使成员为public、protected或private。默认情况下,union跟struct一样——除非另外指定,否则union成员均为public成员。union也可以定义成员函数,包括构造函数和析构函数,但不能作为基类使用,故成员函数不能为虚函数。union不能具有静态数据成员或引用成员,而且不能具有定义了构造函数、析构函数或赋值操作符的类类型成员


        union最经常用作嵌套类型,其判别式是外围类的一个成员。经常使用switch语句测试判别式,然后根据union中当前存储的值进行处理。不用于定义对象的未命名union称为匿名联合(anonymous union),其成员的名字出现在外围作用域中。若匿名union没提供访问其成员的途径,可将成员作为定义匿名union的作用域的一部分直接访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值