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. 方案二:使用结构体替换联合体。
相关推荐
fqbqrr32 分钟前
2607C++,使用微软detours勾挂工具
c++
蓝悦无人机4 小时前
C++基础 — 函数总结
开发语言·c++
我不是懒洋洋5 小时前
从零实现一个分布式监控:Prometheus的核心设计
c++
An_s5 小时前
c++对接pdfium(一)win系统篇
开发语言·c++
众少成多积小致巨5 小时前
C++ 规范参考(上)
c++
一拳一个呆瓜9 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋10 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
神仙别闹10 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
WWTYYDS_66611 小时前
ProtoBuf超详细使用教程
c++
野生风长11 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++