联合可以像类和结构一样用作类型(有一些限制)。它可以有成员函数。它可以用作 OOP 构造。
据我了解,联合只是被导入到 C++ 中以保持与 C 的向后兼容性。
在这些年的编程中,我从未像使用类或结构作为 OOP 构造那样使用联合。
Union 是否有任何实际用途作为 OOP 构造(不仅仅是作为数据类型),或者它只是语言的一些残留部分,永远不会有用?
编辑:
该标准绝对允许联合充当 OOP 构造。它允许在联合中使用成员函数。以下代码可以编译和工作,并且符合标准:
union A
{
int a;
int k;
void doSomething(){}
};
int main()
{
A obj;
int i = obj.a;
obj.doSomething();
return 0;
}
如果不应该充当 OOP 构造,为什么标准允许联合中的成员函数?
请发布带有具体推理的答案,并且请不要发布我不这么认为的答案,没有很好的理由说明为什么?