anonymous union
时间: 2024-09-14 08:08:48 浏览: 28
Java面试宝典-经典
匿名联合(anonymous unions)在C++中是一种特殊的数据结构,它允许你将不同类型的数据共存于一个单一的存储空间内,但只有一个成员变量可以同时占据该空间,其他成员则隐藏起来。当你访问这个联合时,只能通过预先声明的枚举类型来指定你要访问哪个成员。这种数据结构常用于那些需要共享内存但不确定具体使用哪种数据的情况。
例如:
```cpp
union MyUnion {
int value;
char string[10];
};
int main() {
MyUnion myUnion;
// 可以切换访问不同类型
myUnion.value = 42; // 访问整数值
myUnion.string[0] = 'H'; // 访问字符串首字节
enum UnionType { INT, STRING };
switch (myUnion.type) { // 使用枚举访问联合内的成员
case INT: cout << "Integer value: " << myUnion.value << endl;
case STRING: cout << "String: " << myUnion.string << endl;
}
}
```
阅读全文