如果我们只有一个成员,那么结构和联盟之间有什么区别吗?

RAF*_* KC 33 c c++ struct unions c++11

我想知道一个成员数据类型的结构和联合之间的区别,如果有的话.

Ker*_* SB 36

在C:无.着名的"节省空间的笑话" #define struct union几乎不是一个笑话.

在C++ 98中:Unions只能拥有POD成员,非联合类可以拥有任意成员.

在C++ 11中:联合可以拥有对象类型的任意数据成员(但不是引用类型),但是它们的使用比非联合类的使用更受限制.(即:一个联合不能有虚拟成员函数,不能是基类,也不能有基类.)另外,你必须编写更多的代码来使一个成员联合工作而不是一个成员的非联合类因为你必须自己编写构造函数和析构函数.