我使用string的重载运算符==出错

yueyuan_692 2009-03-27 08:36:01
我比较两个string使用==
结果报错:
error C2676: binary '==' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' does not define this operator or a conversion to a type acceptable t
o the predefined operator

高手帮忙分析一下
分不多,心够诚
...全文
197 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonghuafan 2009-03-29
  • 打赏
  • 举报
回复
#include <string>
using namespace std;

int main(int argc, char* argv[])
{

string str = "123";
string str1 = "123";

if (str == str1)
{
printf("Hello World!\n");
}

return 0;
}

这样是可以的,既然重新载了=,对于==肯定也是可以的。。
BenzKuai 2009-03-29
  • 打赏
  • 举报
回复
建议两个方法:
1. 再写一个简单点的测试一下:两个string 是否能直接"=="?应该是可以的。再仔细对你的程序查错。
2. 就转成C风格字符串比较吧。string::c_str()。比较 用:strcmp()。
deerwin1986 2009-03-28
  • 打赏
  • 举报
回复
==就根本没有重载 函数接口和内部的是一样的 等于重新写了一个函数原型一样的...
肯定就不算重载了...
ok88062736 2009-03-28
  • 打赏
  • 举报
回复
2个string类型可以直接用 == 比较阿...
smillyz 2009-03-28
  • 打赏
  • 举报
回复
字符串的比较有相应的函数无需加载“==”自己查找相关的资料!!!
yueyuan_692 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wangell 的回复:]
m_sLastRoadID 你这个不是定义在类里面吗?
可以直接调用?
[/Quote]

在成员函数里面调用的
yueyuan_692 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qqwx_1986 的回复:]
sRoadID 这个是什么类型 大哥
[/Quote]

也是string啊
jinzhou520 2009-03-28
  • 打赏
  • 举报
回复
m_sLastRoadID 你这个不是定义在类里面吗?
可以直接调用?
whhvc 2009-03-28
  • 打赏
  • 举报
回复
string 类型的字符串 如果是二进制形式的,也就是说字符串不是‘\0’结尾的,而是一段buf,
另有len来标记它的长度,这样string不支持==赋值
aaaa3105563 2009-03-28
  • 打赏
  • 举报
回复
学习······
wangyadong 2009-03-28
  • 打赏
  • 举报
回复
pstCdShapeLinkList->stShapeLink[1].sRoadID 是不是不是string类型的
qqwx_1986 2009-03-27
  • 打赏
  • 举报
回复
sRoadID 这个是什么类型 大哥
yueyuan_692 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qqwx_1986 的回复:]
贴代码
[/Quote]



#include <string>
using namespace std;
……

class _declspec(dllexport) CVPLmmMatching
{
……
void CVPLmmMatching::SortCdShapeLink(
VPCdShapeLinkList_t* pstCdShapeLinkList ) // Candidate list
……
string m_sLastRoadID;

}

///////////////////////////////////////////////

if(pstCdShapeLinkList->stShapeLink[1].sRoadID == m_sLastRoadID)
{
stTempCandi = pstCdShapeLinkList->stShapeLink[0];
pstCdShapeLinkList->stShapeLink[0] = pstCdShapeLinkList->stShapeLink[1];
pstCdShapeLinkList->stShapeLink[1] = stTempCandi;
}


qqwx_1986 2009-03-27
  • 打赏
  • 举报
回复
贴代码

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧