吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1217|回复: 10
收起左侧

[求助] c++ 14及以上不可以正常使用联合体了吗?

  [复制链接]
Panel 发表于 2023-2-2 10:45
我在C++ primer plus中看到作者能够直接在结构体中使用联合体,他是c++ 11的,我用vs2022 选的是c++ 14,但是不能在结构体中正常使用联合体,如下图报错,请教各位这是什么原因
getis.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

JuncoJet 发表于 2023-2-2 11:00
string是个对象,能这么用吗
JuncoJet 发表于 2023-2-2 11:04
--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

正在编译 C:\Users\Administrator\Documents\C-Free\Projects\unionTest\main.cpp...
[Error] C:\Users\Administrator\Documents\C-Free\Projects\unionTest\main.cpp:6: error: member `std::string <anonymous struct>::<anonymous union>::h' with constructor not allowed in union
[Error] C:\Users\Administrator\Documents\C-Free\Projects\unionTest\main.cpp:6: error: member `std::string <anonymous struct>::<anonymous union>::h' with destructor not allowed in union
[Error] C:\Users\Administrator\Documents\C-Free\Projects\unionTest\main.cpp:6: error: member `std::string <anonymous struct>::<anonymous union>::h' with copy assignment operator not allowed in union

编译中止 C:\Users\Administrator\Documents\C-Free\Projects\unionTest\main.cpp: 3 个错误, 0 个警告
 楼主| Panel 发表于 2023-2-2 11:19
JuncoJet 发表于 2023-2-2 11:04
--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

正在编译 C:%u ...

好的,多谢!
xiao-bai-shu 发表于 2023-2-2 14:21
union 中的数据成员不能有构造函数(似乎不太严谨),string 有个构造函数,换成 char * 吧。
xiao-bai-shu 发表于 2023-2-2 14:32
本帖最后由 xiao-bai-shu 于 2023-2-2 15:21 编辑

代码有点鄙陋。学得不深。

image.png

 楼主| Panel 发表于 2023-2-2 15:05
xiao-bai-shu 发表于 2023-2-2 14:21
union 中的数据成员不能有构造函数(似乎不太严谨),string 有个构造函数,换成 char * 吧。

对的,就是楼上说的那个方法
xiao-bai-shu 发表于 2023-2-2 15:15
本帖最后由 xiao-bai-shu 于 2023-2-2 15:24 编辑
Panel 发表于 2023-2-2 15:05
对的,就是楼上说的那个方法

如果没有节省内存的必要不建议用 union,不好用。不如直接用 struct。
并且你这个帖子发错版块了。
MarioCrane 发表于 2023-2-5 13:27
xiao-bai-shu 发表于 2023-2-2 15:15
如果没有节省内存的必要不建议用 union,不好用。不如直接用 struct。
并且你这个帖子发错版块了。

union可不只是为了节省内存,union是为了做转换的

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
隐藏英雄 + 2 + 1 热心回复!

查看全部评分

xiao-bai-shu 发表于 2023-2-11 23:46
MarioCrane 发表于 2023-2-5 13:27
union可不只是为了节省内存,union是为了做转换的

模板类或者其他数据转换方法不也能解决?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表