首页 文章

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

提问于
浏览
26

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

1 回答

  • 31

    在C:无 . 着名的"space-saving joke" #define struct union 几乎不是一个玩笑 .

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

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

相关问题