C++ 访问联合的数据成员时出错

C++ 访问联合的数据成员时出错,c++,unions,C++,Unions,访问员工姓名时,我不断收到一条错误消息“error:const char[7]to[30]赋值中的不兼容类型”。我知道一次只能访问联盟的一个数据成员。请帮忙。非常感谢。这是我的密码: #include <iostream> #include <string> using namespace std; union employee { char name[30]; int ID; float salary; }; int main() {

访问员工姓名时,我不断收到一条错误消息“error:const char[7]to[30]赋值中的不兼容类型”。我知道一次只能访问联盟的一个数据成员。请帮忙。非常感谢。这是我的密码:

#include <iostream>
#include <string>
using namespace std;

union employee
{
    char name[30];
    int ID;
    float salary;
};
int main()
{
    union employee emp; 
    emp.name="Tibebu";
    cout<<"Employee name: "<<emp.name<<endl;
    return 0;
}
#包括
#包括
使用名称空间std;
工会雇员
{
字符名[30];
int-ID;
浮动工资;
};
int main()
{
工会雇员管理计划;
emp.name=“Tibebu”;

cout问题不在于对象是联合的成员。问题在于您试图分配数组。而数组是不可分配的


要修改数组,必须分配其元素。有一些标准函数用于在数组之间复制多个元素。

emp.name=“Tibebu”
你需要在这里使用。你到底为什么要用
工会来做这件事呢?你的代码说
员工
要么是
姓名
,要么是
身份证
,要么是
薪水
,这毫无意义。请使用
std::string
而不是
char
数组。它们更容易使用,也更安全r、
我知道一次只能访问联盟的一个数据成员。
不准确。你可以随时访问任何成员,但当然你需要知道你在做什么/期待什么。嗨,Jonny,谢谢你的回复。通过结构访问数据成员不需要使用strcpy()功能。结构和联合之间的显著区别在于一次访问所有数据成员与不可能一次访问它们。我真的不明白为什么我必须在联合中使用strcpy。谢谢