178 第9章 类和对象
输出:
Accessing private member age via friend class: 25
分析:
第7行指出Utility类是Human类的友元,该声明让Utility类的所有方法都能访问Human类的私有数据成员和方法。
9.11 共用体:一种特殊的数据存储机制
共用体是一种特殊的类,每次只有一个非静态数据成员处于活动状态。因此,共用体与类一样,可包含多个数据成员,但不同的是只能使用其中的一个。
9.11.1 声明共用体
要声明共用体,可使用关键字union,再在这个关键字后面指定共用体名称,然后在大括号内指定其数据成员:
union UnionName
sizeof是什么{
Type1 member1;
Type2 member2;
…
TypeN memberN;
};
要实例化并使用共用体,可像下面这样做:
UnionName unionObject;
与结构类似,共用体的成员默认也是公有的,但不同的是,共用体不能继承。
另外,将sizeof()用于共用体时,结果总是为共用体最大成员的长度,即便该成员并不处
于活动状态。
9.11.2 在什么情况下使用共用体
在结构中,常使用共用体来模拟复杂的数据类型。共用体可将固定的内存空间解释为另一种类型,有些实现利用这一点进行类型转换或重新解释内存,但这种做法存在争议,而且可采用其他替代方式。
程序清单9.16演示了如何声明和使用共用体。
程序清单9.16 声明并实例化共用体并对其使用sizeof()
0: #include <iostream>
1: using namespace std;
2:
3: union SimpleUnion
4: {
5: int num;
6: char alphabet;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论