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. 方案二:使用结构体替换联合体。
相关推荐
你撅嘴真丑10 分钟前
计算2的N次方 和 大整数的因子
数据结构·c++·算法
孞㐑¥14 分钟前
算法—前缀和
c++·经验分享·笔记·算法
CSDN_RTKLIB27 分钟前
【编码实战】编译器解码编码过程
c++
Yupureki43 分钟前
《算法竞赛从入门到国奖》算法基础:搜索-记忆化搜索
c语言·c++·学习·算法·深度优先
CC.GG1 小时前
【C++】C++11----智能指针
开发语言·c++
星火开发设计2 小时前
const 指针与指针 const:分清常量指针与指针常量
开发语言·c++·学习·算法·指针·const·知识
闻缺陷则喜何志丹2 小时前
【树 链 菊花】P10418 [蓝桥杯 2023 国 A] 相连的边|普及+
c++·算法·蓝桥杯···菊花
REDcker2 小时前
libwebsockets库原理详解
c++·后端·websocket·libwebsockets
天上飞的粉红小猪2 小时前
c++的IO流
开发语言·c++
ygklwyf2 小时前
JPRS编程竞赛2026#1(AtCoder初学者竞赛442)
c++·算法·模拟