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 分钟前
Linux进程信号(1):信号概述,信号产生part 1
linux·运维·服务器·c++·信号·signal
colicode3 分钟前
C++语音验证码接口API示例代码详解:高性能C++语音校验接入Demo
前端·c++·前端框架·语音识别
阿i索7 分钟前
流对象输入输出(cin/cout)
c++·笔记·学习
载数而行5208 分钟前
数据结构系列15之图的存储方式2
c语言·数据结构·c++
王老师青少年编程8 分钟前
2021年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第1题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
REDcker16 分钟前
curl完整文档
c++·c·curl·服务端·后端开发
小比特_蓝光16 分钟前
STL小知识点——C++
java·开发语言·c++·python
阿猿收手吧!23 分钟前
【C++】格式化库:告别繁琐,拥抱高效
开发语言·c++
俩娃妈教编程24 分钟前
洛谷选题:P1055 [NOIP 2008 普及组] ISBN 号码
c++·算法
悲伤小伞27 分钟前
Linux_应用层自定义协议与序列化——网络计算器
linux·服务器·c语言·c++·ubuntu