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. 方案二:使用结构体替换联合体。
相关推荐
旭意16 小时前
C++微基础备战蓝桥杯string篇10.5
开发语言·c++·蓝桥杯
千里马-horse16 小时前
Async++ 源码分析11--schedule_fwd.h
开发语言·c++·async++·chedule_fwd
小猪佩奇TONY16 小时前
C++ 学习(3) ----设计模式
c++·学习·设计模式
bawangtianzun18 小时前
重链剖分 学习记录
数据结构·c++·学习·算法
头发掉光的程序员19 小时前
第九章 纹理贴图
c++·图形渲染·direct12
进击中的小龙1 天前
在vscode下的cmake项目里传参调试c++命令行程序
c++·vscode
奔跑吧邓邓子1 天前
【C++实战(74)】深入C++安全编程:密码学实战之旅
c++·安全·实战·密码学·安全编程
明天会有多晴朗1 天前
C语言入门教程(第1讲):最通俗的C语言常见概念详解与实战讲解
c语言·开发语言·c++
Larry_Yanan1 天前
QML学习笔记(二十四)QML的Keys附加属性
c++·笔记·qt·学习·ui
龙木之森1 天前
纯 C++ 开发的 Telegram Bot 框架
c++·tui·telegram·bot