C++联合体浅见

最近在学习C++进阶的内容,发现了C++一种特殊的类叫联合体。我是在github上的一个项目上学习的,个人觉得这个项目挺不错的链接

特点

1.与结构体不同,联合体所有变量公用一块内存空间,联合体的内存长度是由变量中内存长度最长的变量所决定的。

union MyUnion
{
	struct MyStruct
	{
		int x;
		int y;
		int j;
	}u;
	int k;
};
MyUnion a;
	a.u.x = 1;
	a.u.y = 2;
	a.u.j = 3;
	a.k = 4;//覆盖掉第一个int空间的值
	cout << "a.u.x=" << a.u.x << "a.u.y=" << a.u.y << "a.u.j=" << a.u.j << "a.k=" << a.k << endl;//联合体练习

最后输出a.u.x=4 a.u.y=2 a.u.j=3 a.k=4
可以看出,此联合体长度即为结构体的长度。联合体中,结构体和整型变量k公用一块内存,所以给a.k赋值时会改变结构体中x的值。
2.可含构造函数和析构函数
3.不能含有引用
4.不能继承或作为基类
5.不能有虚函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值