c++ - 如果我们只有一个成员,结构和 union 之间有什么区别吗?

标签 c++ c c++11 struct unions

如果有的话,我想知道一种成员数据类型的结构和 union 之间的区别。

最佳答案

在 C 中:无。著名的“节省空间笑话”#define struct union 几乎不是笑话。

在 C++98 中: union 只能有 POD members , 非 union 类可以有任意成员。

在 C++11 中: union 可以有任意对象类型的数据成员(但不是引用类型),但它们的使用比非 union 类更受限制。 (即: union 不能有虚拟成员函数,不能是基类,也不能有基类。)此外,与单成员非 union 类相比,您必须编写更多代码才能使单成员 union 工作, 因为你必须自己编写构造函数和析构函数。

关于c++ - 如果我们只有一个成员,结构和 union 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26572432/

相关文章:

c# - 如何从 C++ dll 在 C# 函数中传递大小未知的数组?

c++ - Qt 4.7 和 4.8 之间的 OpenSceneGraph 性能

c - printf ("-") 和 printf ("-\n");

c++ - 在 GCC 而不是 Clang 中编写 SIGSEGV 代码

c++ - 从数据文件c++读取时第一个字母被删除

c++ - operator () 括号是否在函数调用中创建的对象上被调用?

c - 需要帮助找到解决问题的逻辑解决方案

c - 如何在 gcc 中执行 C89 风格的变量声明?

c - MKL 矩阵转置

c++ - 计算直线上点的投影的优化函数?