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. 方案二:使用结构体替换联合体。
相关推荐
应用市场几秒前
TCP网络连接断开检测机制详解——C++实现网络连通性判断与断线类型识别
网络·c++·tcp/ip
雾岛听蓝2 分钟前
C/C++内存管理
c语言·c++
AuroraWanderll6 分钟前
类和对象(三)-默认成员函数详解与运算符重载
c语言·开发语言·数据结构·c++·算法
Minecraft红客8 分钟前
C++制作迷宫第一版
c++·游戏·电脑·娱乐
雪域迷影10 分钟前
Windows11中VS2026使用C++ 现代化json库nlohmann的3种方式
开发语言·c++·json
羑悻的小杀马特13 分钟前
LRU Cache:高频访问数据的“智能保鲜舱”与经典淘汰艺术
c++·后端·lru cache·热点数据与冷数据
zephyr0513 分钟前
C++ STL string 用法详解与示例
开发语言·c++
郝学胜-神的一滴14 分钟前
Linux线程的共享资源与非共享资源详解
linux·服务器·开发语言·c++·程序人生·设计模式
郝学胜-神的一滴16 分钟前
Linux进程与线程的区别:从内存三级映射角度深入解析
linux·服务器·c++·程序人生
默凉17 分钟前
c++使用http发送图像
开发语言·c++·http