我得到"将值分配给结构数组 iin 时与'operator='不匹配C++
I get "no match for 'operator=' when assigning value to a struct array iin C++
我正在尝试从一个名为议程的文件中读取信息,并将其放入构造类型的persona*中,该信息在代码之后显示。
char arrk [120];
string dato;
arch_g.open("AGENDA.TDAT",ios::in);
//Persona* buffer;
do
{
for (int k=0; k<tamano; k++)
{
arch_g.getline (arrk, 120, 't');
string dato (arrk);
arreglo->nombre=dato;
arreglo->apellido_p=dato;
arreglo->apellido_m=dato;
arreglo->dom.calle=dato;
int dato1 = (int)arrk;
arreglo->dom.numero=dato1;
arreglo->dom.interior=dato;
arreglo->dom.colonia=dato;
arreglo->dom.ciudad =dato;
arreglo->dom.estado=dato;
dato1 = (int)arrk;
arreglo->dom.codigo_postal=dato1;
arreglo->tel.local=dato;
arreglo->tel.clave_cd=dato;
per[k] = arreglo;
}
}
这是角色
struct Persona
{
bool isInitialized;
std::string nombre;
std::string apellido_p;
std::string apellido_m;
Domicilio dom;
Telefono tel;
Persona() : isInitialized(false) {}
}
struct Domicilio
{
bool isInitialized;
std::string calle;
int numero;
std::string interior;
std::string colonia;
std::string ciudad;
std::string estado;
int codigo_postal;
Domicilio() : isInitialized(false) {}
};
struct Telefono
{
bool isInitialized;
std::string local;
std::string clave_cd;
Telefono() : isInitialized(false) {}
};
我得到的错误是:
错误:'operator ='没有匹配(操作数类型是'persona'和'persona*')|
误差在'per [k] = arreglo上标记;'该部分是指角色结构
注意:候选人是:|注意:角色&amp;角色::操作员=(const persona&amp;)|注意:从" persona*"到'const persona&amp;'|
的参数1的已知转换。Per和Arreglo均声称为全局角色*
这是一个指针。取价。或每个人必须是角色**
per[k] = *arreglo;
如果结构是非平凡
,您也可能需要实现操作员Persona& operator=(const Persona& o) { ... }
相关文章:
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 'operator='已弃用:改用 QDir::setPath()
- 将鼠标悬停在问题上时与预期">"相关的代码错误
- 过载'operator new'如何导致无限循环?
- 与'operator='不匹配(操作数类型'String'且"void")
- SegFault 同时使用 std::string::operator+= 和函数作为参数
- 处理"no operator found"
- 如何编写 operator= 用于使用虚拟方法与非平凡成员的匿名联合
- 运算符重载:"operator+"必须采用零个或一个参数
- 使用 operator() 扩展 Eigen::EigenBase
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 有没有办法修改'operator->',以便'z->im'返回复数的虚部
- "operator +="行为异常的定义
- C++ "error: use of overloaded operator '*' is ambiguous"似乎只有一场比赛
- 错误:二进制'operator*' 'float'和'float[0]'类型的操作数无效
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- 为什么 operator() 处的指针成员不起作用?
- 为什么 string_view::operator== 按值接受参数
- "operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?
- 我得到"将值分配给结构数组 iin 时与'operator='不匹配C++