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. 方案二:使用结构体替换联合体。
相关推荐
卡提西亚33 分钟前
C++笔记-24-文件读写操作
开发语言·c++·笔记
m0_7482480239 分钟前
C++ 异常处理全解析:从语法到设计哲学
java·c++·word
m0_748248022 小时前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
QT 小鲜肉2 小时前
【Git、GitHub、Gitee】按功能分类汇总Git常用命令详解(超详细)
c语言·网络·c++·git·qt·gitee·github
派大星爱吃猫2 小时前
C++中的inline函数(内联函数)
c++·inline·内联函数
清风wxy3 小时前
Duilib_CEF桌面软件实战之Duilib编译与第一个界面程序
c++·笔记·ui·mfc
郝学胜-神的一滴3 小时前
Linux下,获取子进程退出值和异常终止信号
linux·服务器·开发语言·c++·程序人生
notfindjob3 小时前
MFC动态加载图片
c++·mfc
CodeByV3 小时前
【C++】继承
开发语言·c++
乱舞八重击(junluoyu)5 小时前
1.PagedAtteion算法
c++