C++ C++;参考删除函数错误

C++ C++;参考删除函数错误,c++,C++,给我一个错误,在哪里 void User::addDevice(const Device&_Device){this->Device=_Device;} 没有给出错误。错误是 严重性代码说明项目文件行抑制状态 错误C2280“Account&Account::operator=(const Account&”):尝试引用已删除的函数 我使用了相同的构造,现在是一个错误您需要重载=运算符才能做到这一点 请参阅,当您在任何代码中键入x=y时,如果两者的类型相同,并且编译器(假设您不使用解释语言)知

给我一个错误,在哪里

void User::addDevice(const Device&_Device){this->Device=_Device;}

没有给出错误。错误是

严重性代码说明项目文件行抑制状态 错误C2280“Account&Account::operator=(const Account&”):尝试引用已删除的函数


我使用了相同的构造,现在是一个错误

您需要重载=运算符才能做到这一点

  • 请参阅,当您在任何代码中键入x=y时,如果两者的类型相同,并且编译器(假设您不使用解释语言)知道如何分配它们,那么这将正常工作

  • <>现在帐户是你的自定义类型,所以你必须告诉C++编译器如何分配它们。p>
设备类/结构将重载它。 这是一个非常简单的例子


把它弄明白了。隐藏的杂散常量变量

std::is_same::value
is
false
。但更重要的是:
std::is\u copy\u assignable::value
也是
false
。它只是一个简单的设置器。设备设置器和其他许多设置器一样工作,但现在VisualStudio给出了这个错误。它是用同样的方式写的,这取决于类型。你知道,有些类型不能被复制赋值,可能只被移动赋值,甚至不被移动赋值。它在错误的地方有一个常量变量
void User::addAccount(const Account& _account) { this->account = _account; }