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. 方案二:使用结构体替换联合体。
相关推荐
云深处@8 分钟前
【C++11】特殊类&&单例模式
开发语言·c++
ADDDDDD_Trouvaille11 分钟前
2026.2.15——OJ83-85题
c++·算法
Ronaldinho Gaúch43 分钟前
算法题中的日期问题
开发语言·c++·算法
zenpluck2 小时前
RTAB-Map学习记录(1)--论文阅读
c++·论文阅读·学习·机器人
郝学胜-神的一滴2 小时前
Effective Modern C++ 条款36:如果有异步的必要请指定std::launch::async
开发语言·数据结构·c++·算法
小此方2 小时前
Re:从零开始的 C++ STL篇(六)一篇文章彻底掌握C++stack&queue&deque&priority_queue
开发语言·数据结构·c++·算法·stl
0 0 02 小时前
CCF-CSP 40-2 数字变换(transform)【C++】考点:预处理
开发语言·c++·算法
无忧.芙桃2 小时前
继承的篇章
c++
头发够用的程序员3 小时前
Python 魔法方法 vs C++ 运算符重载全方位深度对比
开发语言·c++·python
不吃鱼的猫7483 小时前
【从零手写播放器:FFmpeg 音视频开发实战】04-封装格式与多媒体容器
c++·ffmpeg·音视频