C++:基本-union是没有构造函数和析构函数的

今天发现当我在union中包含了多个结构体时,结构体有默认构造函数时,编译报错。

问题点:

  1. union不支持构造函数和析构函数
  2. union中的元素本身也是不支持构造函数和析构函数的。
  3. 包含union的结构体也不支持构造函数和析构函数。

出错代码如下:

cpp 复制代码
struct MyStruct {
    MyStruct() { /* 构造函数代码 */ }
    ~MyStrcut(){/* 析构函数代码*/}
    int a;
    double b;
};

union MyUnion {
    MyStruct s;
    int i;
};

解决方案如下:

  1. 方案一:移除结构体中的构造函数,在使用union的外部初始化;
  2. 方案二:使用结构体替换联合体。
相关推荐
一个小猴子`1 小时前
CUDA全局内存
c++·cuda编程
ysa0510301 小时前
【板子】树上启发式合并
数据结构·c++·笔记·算法
Simple_core2 小时前
cmake模板和问题总结
c++
劉宇雁3 小时前
C++ ASCII 3D无尽跑酷游戏
c++·游戏·3d
杜子不疼.3 小时前
【C++ 在线五子棋对战】- 会话管理模块实现
开发语言·c++
有点。3 小时前
C++深度优先搜索(DFS)的概念(一)
开发语言·c++·深度优先
旖-旎3 小时前
《LeetCode 978 最长湍流子数组 || LeetCode 139 单词拆分》
c++·算法·leetcode·动态规划
aaPIXa6224 小时前
C++大型项目模块化拆分实战记录
开发语言·c++
石山代码4 小时前
C++23 新特性在 CLion 中的实战体验
开发语言·c++·c++23
在线OJ的阿川4 小时前
仿muduo库实现高并发服务器
linux·服务器·c++