如果有些场景中需要用多种方式调用同一个值,可以用union
定义二维向量结构:
struct Vector2 {
int a, b;
}
定义四维向量结构:
struct Vector4 {
union {
struct {
int x, y, z, w;
};
struct {
Vector2 m, n;
};
};
};
四维向量包含四个数据。除了x,y,z,w一种定义外,还可以利用二维向量。这样四维向量便有了两种使用方式
#include <iostream>
struct Vector2 {
int a, b;
};
struct Vector4 {
union {
struct {
int x, y, z, w;
};
struct {
Vector2 m, n;
};
};
};
int main() {
Vector4 v4 = {100,2,3,4};
std::cout << "one way to get first value: " << v4.m.a << std::endl;
std::cout << "the other way to get first value: " << v4.x << std::endl;
std::cin.get();
}
输出:
one way to get first value: 100
the other way to get first value: 100