联合:节省空间的类
2016-09-05 15:57
162 查看
联合(union)是一种特殊的类。一个union对象可以有多个数据成员,但在任何时候,只有一个成员可以有值。当将一个值赋给union对象的一个成员的时候,其它所有成员都变为未定义的。每个union对象的分配得到的空间大小在编译时是固定的,至少与union的最大数据成员一样大。
像任何类一样,union可以指定保护标记使成员为public、protected或private。默认情况下,union跟struct一样——除非另外指定,否则union成员均为public成员。union也可以定义成员函数,包括构造函数和析构函数,但不能作为基类使用,故成员函数不能为虚函数。union不能具有静态数据成员或引用成员,而且不能具有定义了构造函数、析构函数或赋值操作符的类类型成员。
union最经常用作嵌套类型,其判别式是外围类的一个成员。经常使用switch语句测试判别式,然后根据union中当前存储的值进行处理。不用于定义对象的未命名union称为匿名联合(anonymous union),其成员的名字出现在外围作用域中。若匿名union没提供访问其成员的途径,可将成员作为定义匿名union的作用域的一部分直接访问。
像任何类一样,union可以指定保护标记使成员为public、protected或private。默认情况下,union跟struct一样——除非另外指定,否则union成员均为public成员。union也可以定义成员函数,包括构造函数和析构函数,但不能作为基类使用,故成员函数不能为虚函数。union不能具有静态数据成员或引用成员,而且不能具有定义了构造函数、析构函数或赋值操作符的类类型成员。
union最经常用作嵌套类型,其判别式是外围类的一个成员。经常使用switch语句测试判别式,然后根据union中当前存储的值进行处理。不用于定义对象的未命名union称为匿名联合(anonymous union),其成员的名字出现在外围作用域中。若匿名union没提供访问其成员的途径,可将成员作为定义匿名union的作用域的一部分直接访问。
相关文章推荐
- 用匿名联合来节省空间
- [C++ primer]联合:节省空间的类
- C++ Primer 学习笔记_105_特殊工具与技术 --联合:节省空间的类
- 移动设计空间节省之道
- 节省宝贵的屏幕空间隐藏很少使用的winform控件
- Redis节省空间
- 节省空间的结构:BitMap(位图)
- 【财富空间】将门CEO高欣欣、顺丰首席科学家刘志欣、图灵机器人联合创始人杨钊、中国人民大学向松祚等——AI应用落地:用产品说话
- 一个节省空间的小技巧
- 停止自动归档的操作,实验时可以节省硬盘空间
- 只考虑节省空间造成的功能错误
- Win7系统如何将桌面文件转移到D盘节省C盘空间
- 移动设计空间节省之道
- WinXP系统使用磁盘整理为系统节省空间图文教程
- 如何让算法更节省空间
- 优化 Ext4 分区格式化后占用空间(通过降低inode数来节省磁盘空间)
- 压缩数据以节省空间和提高速度
- 网页使用下拉框,节省空间
- Windows7备份磁盘空间如何更好的最大限度的节省