[]结构体嵌套共用体,使用过程中出现有关问题
[求助]结构体嵌套共用体,使用过程中出现问题
换成char s_id[20];就可以,为什么string不可以呢?
------解决方案--------------------
union中不能包含带析构函数的对象
#include <iostream>
#include <string>
void add(void);
struct info{//结构体
union//共用体
{
std::string s_id;//错误位置
/*
error C2621: “info::s_id”: 非法的联合成员;类型“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”具有复制构造函数
*/
int i_id;
}id;//共用体对象
char name[20];
unsigned int age;
std::string address;
};
info make;//定义结构体对象
void add()//函数
{
make.id.i_id = 123456;
strcpy_s(make.name,"make");
make.address = "山东省";
make.age = 18;
}
int main()//主函数
{
// using namespace std;
add();
std::cout << make.address << std::endl;
std::cin.get();
return 0;
}
换成char s_id[20];就可以,为什么string不可以呢?
------解决方案--------------------
union中不能包含带析构函数的对象