c++ - 你可以在类声明中拥有而在 union 声明中永远不会遇到的一件事是什么?

标签 c++ unions

我在网上看到这个面试题。可悲的是,我无法弄清楚这样的事情......函数,构造函数,析构函数

顺便说一句,我认为 struct 和 class 在 C++ 中几乎相同,除了类的成员默认是私有(private)的,而结构的成员默认是公共(public)的。类之间的继承默认也是私有(private)的,结构之间的继承默认是公有的。

union 与 struct 不同,因为它的所有成员都在同一个位置。

谢谢

最佳答案

union 不能有基类。

union 体也不能有任何具有非平凡特殊成员函数、虚拟成员函数、静态数据成员或引用数据成员的数据成员,但这些会出现在 union 体的定义中。 union 不能用作基类,但这仅适用于其他类声明,不适用于 union 本身的声明。

关于c++ - 你可以在类声明中拥有而在 union 声明中永远不会遇到的一件事是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858418/

相关文章:

c++ - 放置新的 STL 容器并在之后安全地销毁它

c - 不同大小成员的 union 的内存布局?

c++ - 变换矩阵——旋转变换后的新点坐标

c++ - PCC-S-02015,无法打开包含文件

javascript - 在 node.js C++ 插件中实现 JS 算术运算符

c - C 中的位域,其结构包含结构的并集

c - 无法从文本文件读取数据并将其放入结构和 union 以在另一个文本文件和输出窗口中获取输出

c++ - 模板元代码和私有(private)成员

c++ - 大矩阵的Opencv乘法

c++ - c 中的嵌套 union