错误:"运算符="不匹配 |结构返回类型
error: no match for ‘operator=' | struct return type
我正在收到以下错误消息:
dec_main.cpp:202:错误:'dec_log_used = dec.dec.dec :: decode()
中的'operator ='无匹配 Wrapper.H:2:注意:候选人是:DEC_LOG&dec_log :: operator =(const dec_log&)
运行以下代码时:
wrapper.h
typedef struct { int wt_sum; float num_itr; } dec_log;
dec.cpp
include "wrapper.h"
class dec {
public:
dec_log dec_log_used;
dec_log decode();
};
dec_log dec::decode() {
dec_log_used.wt_sum = 2;
dec_log_used.num_itr = 8;
return dec_log_used;
};
dec_main.cpp
#include "wrapper.h"
dec_log dec_log_used;
int main() {
dec DEC;
......
......
dec_log_used = DEC.decode();
};
关于需要修复的内容的任何建议?
dec
类在dec_main.cpp
中不确定。也许这就是为什么在这种情况下编译器会产生如此奇怪的错误。
有一种真正的做法,可以将类声明及其定义分开为C 。为了防止双重包含在内。
所以您应该有以下文件。
wrapper.h
#ifndef WRAPPER_H
#define WRAPPER_H
typedef struct { int wt_sum; float num_itr; } dec_log;
#endif
dec.h
#ifndef DEC_H
#define DEC_H
#include "wrapper.h"
class dec
{
public:
dec_log dec_log_used;
dec_log decode();
};
#endif
dec.cpp
#include "dec.h"
dec_log dec::decode()
{
dec_log_used.wt_sum = 2;
dec_log_used.num_itr = 8;
return dec_log_used;
}
dec_main.cpp
#include "dec.h"
dec_log dec_log_used;
int main()
{
dec DEC;
dec_log_used = DEC.decode();
}
在此代码中,包括警卫不是必要的,而是习惯。您可以改用#pragma once
,但您的编译器似乎有些奇怪。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- 在使用累加时,C++中的运算符+不匹配
- C++ 与操作员不匹配<<
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 编译器上的策略数据结构不起作用
- 使用具有结构不完整类型错误的模板
- 与'operator='不匹配(操作数类型'String'且"void")
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- C4018:类内有符号、无符号不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- COM 互操作结构定义与内存布局不匹配
- 我得到"将值分配给结构数组 iin 时与'operator='不匹配C++
- 错误:"运算符="不匹配 |结构返回类型
- 警告MSB3270:项目的处理器体系结构之间的不匹配
- 为什么结构和工会之间的规模不匹配
- 为什么结构大小与项目大小的普通总和不匹配?
- 与结构sockaddr_in调用不匹配