紧急求助关于操作符重载相关的一个程序错误问题
头文件:
class CJiHe
{
public:
CJiHe(void);
virtual ~CJiHe();
CJiHe(CStringArray &arrHS);//从字符串创建,自动去除非法字符与重复字符
CJiHe(const CJiHe &other);//拷贝构造
CJiHe operator + (const CJiHe &other) const;//加法重载,并集
CJiHe operator - (const CJiHe &other) const;//减法重载,差集
CJiHe operator * (const CJiHe &other) const;//乘法重载,交集
BOOL FindInString(CStringArray &arrHS, CString strHE);
private:
CStringArray m_arrHouseSet;
};
实现CPP:
//----------JiHe.cpp----------已略去不重要的内容----------
BOOL CJiHe::FindInString(CStringArray &arrHS, CString strHE)
{
//全局函数
//从字符串中查找字符
//有则返回1,无则返回0
int count = arrHS.GetSize();
CString str="";
for (int i = 0; i<count; i++)
{
str = arrHS.GetAt(i);
if (str == strHE)
return TRUE;
}
return FALSE;
}
CJiHe CJiHe::operator + (const CJiHe &other) const
{
//加法重载,并集
CStringArray arrtemp;
int count1 = other.m_arrHouseSet.GetSize();
int count2 = m_arrHouseSet.GetSize();
CString str="";
BOOL bFind = FALSE;
if(count1<=count2)
{
for(int i=0;i<count1;i++)
{
str = other.m_arrHouseSet.GetAt(i);
bFind = FindInString(m_arrHouseSet,str);
if(bFind)
{
arrtemp.Add(str);
}
}
}
else
{
for(int j=0;j<count2;j++)
{
str = m_arrHouseSet.GetAt(j);
bFind = FindInString(other.m_arrHouseSet,str);
if(bFind)
{
arrtemp.Add(str);
}
}
}
return CJiHe(arrtemp);
}
就是在上述函数(“+”运算)中,FindInString总报以下错:
error C2662: 'FindInString' : cannot convert 'this' pointer from 'const class CJiHe' to 'class CJiHe &'
Conversion loses qualifiers
不知何故,请各位大侠帮助!!!谢谢
相关推荐
#_ssm_030_mysql_百色学院创新实践学分认定系统_.zip
#_ssm_030_mysql_百色学院创新实践学分认定系统_
C++异常处理规范:从RAII到noexcept的工程实践指南
异常处理是现代编程语言中用于分离错误处理与业务逻辑的核心机制,其原理基于栈展开和对象生命周期管理。在C++中,异常机制与资源获取即初始化(RAII)范式深度集成,通过自动调用析构函数确保资源安全释放,这构成了异常安全性的技术基础。从工程价值看,合理的异常规范能显著提升代码的可维护性和健壮性,尤其在大型项目或对稳定性要求高的系统中。应用场景涵盖构造函数失败报告、跨多层调用栈的错误传播,以及需要强异常保证的关键操作。本文聚焦C++异常处理规范,深入探讨RAII资源管理、noexcept优化以及异常安全等级等实践
NumPy矩阵乘法四大接口:@、matmul、dot与einsum的本质区别
矩阵乘法是科学计算与深度学习的基础操作,其核心在于维度对齐与广播规则。NumPy 提供了 @ 操作符、np.matmul、np.dot 和 np.einsum 四种实现方式,它们并非功能冗余,而是对应不同抽象层级的张量代数契约:@ 严格遵循线性代数语义,仅作用于最后两维;np.matmul 是其函数化等价物但拒绝标量输入;np.dot 作为历史遗留接口,行为随维度变化而多态,易引发广播陷阱;np.einsum 则提供显式爱因斯坦求和控制,适用于高维定制化计算。在 NumPy 2.x 全面落地背景下,@ 已成
JAVA毕业设计之#-ssm-030-mysql-百色学院创新实践学分认定系统-.zip
java源代码,程序可执行
#-ssm-030-mysql-百色学院创新实践学分认定系统-.zip
本百色学院创新实践学分认定系统是针对目前实践学分认定的实际需求,从实际工作出发,对过去的实践学分认定系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和java中流行的MVC三层设计模式和eclipse编辑器、MySQL 数据库设计并实现的 。本实践学分认定系统主要包括系统用户管理模块、教师信息管理模块、申报信息管理、留言管理、登录模块、和退出模块等多个模块。它帮助实践学分认定实现了信息化、网络化,通过测试,实现了系统设计目标,相比传统的管理模式,本系统合理的利用了实践学分认定数据资源,有效的减少了实践学分认定的经济投入,大大提高了实践学分认定的效率。 关键词:实践学分认定;MVC模式;MySQL 数据库


