一、继承C语言的union
二、C++中union的提升
- C++中在定义共用体变量的时候也可以省略
union
关键字(类似enum
),直接类型名 变量名
- C++中,
union
的成员还可以是简单对象,但是对象不能包含自定义构造函数和析构函数
在C语言中,也可以通过函数指针实现类型的功能:
union myunion
{
void (*pFunc)(void);
}
void func(void)
{
/*业务代码*/
}
- C++中经常使用
匿名union
,一般内置在class
内部作成员变量。这和匿名namespace
只在当前文件(或函数)使用有异曲同工之妙
class Test {
union {
int a;
char b;
}mu1;
}