#include<iostream>
using namespace std;
union f
{
string car;
int model;
};
int main(){
union f p;
p.car = "mclaren";
cout<<endl<<"car :"<<p.car<<endl;
return 0;
}
串车; 给出一个类似这样的错误:“因为默认定义的格式不正确,所以隐式删除:”。
但是当我用char替换字符串时,它没有显示错误。 这是因为联合不能处理字符串数据类型,还是有其他原因?
[副本]
此答案很好-https://stackoverflow.com/a/19764531/13739967
由于Std::String是非Pod的,因此您必须定义一个构造函数/析构函数才能使其适用于C++11和更高版本。
不应该在联合中使用std::字符串。 查看@brc-dd的评论和他链接的答案。