联合、结构和类(Union, Struct, Class)


联合 (union)的定义(C++ Primer P662):
在C++ Primer中,联合被认为是节省空间的类,是一种特殊的类。
(1) 一个union对象可以有多个数据成员,但在任何时刻,只有一个成员可以有值。当将一个值赋给union对象的一个成员的时候,其他所有成员都变为未定义的。
(2) 每个union对象的大小在编译时是固定的:它至少与union的最大数据成员一样大。
(3) union可以指定保护标记使成员成为public,private或protected,默认为public。
(4) union可以定义成员函数,包括构造函数和析构函数,但是不能作为基类使用,所以成员函数不能为虚数。
(5) union不能具有静态数据成员或引用成员,而且,union不能具有定义了构造函数、析构函数或赋值操作符的类类型的成员。


关于结构 (struct),C++ Primer中有这样一句话(P57),“用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员默认为private”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值