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. 方案二:使用结构体替换联合体。
相关推荐
syagain_zsx2 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
fpcc3 小时前
计算机原理—如何高效的操作文件
c++·计算机原理
Rabitebla3 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
system_error_x3 小时前
C++ 编程基础入门教程
开发语言·c++
布莱克6055 小时前
A* 算法详解:从原理到实现
开发语言·c++·算法
多弗朗皮卡丘5 小时前
C++ 智能指针
开发语言·c++·c++11·智能指针
进化中的刀盾兽6 小时前
从零实现 C++ AI 大模型接入 SDK(十):SessionManager 会话管理与多轮对话实现
c++
小成202303202656 小时前
C++~02运算符重载
开发语言·c++
郑同学的笔记7 小时前
【c++随笔30】C++ 注册回调函数
开发语言·c++
lengxuenong7 小时前
树状数组 · 信息学学习手册2-离散化与逆序对
c++·学习·算法