首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >混淆"operator==“或"operator LPCTSTR”

混淆"operator==“或"operator LPCTSTR”
EN

Stack Overflow用户
提问于 2010-11-19 20:14:11
回答 2查看 409关注 0票数 1

我有一小段代码:

代码语言:javascript
运行
复制
CString temp = _T("Temp");
if(_T("Temp") == temp)
{
 ....
}

现在,由于CString类中有一个friend opeartor==函数,因此将调用operator==。但是也有一个为CString定义的operator LPCTSTR。所以我的问题是,为什么不使用这个运算符而不是operator==?如果我们暂时假设没有friend operator==,那么会使用operator LPCTSTR吗?对于这种情况,语言规则是怎么说的?

EN

Stack Overflow用户

回答已采纳

发布于 2010-11-19 20:16:12

与需要用户定义的转换的运算符LPCTSTR相比,调用重载的operator==是完全匹配的。精确匹配优先于用户定义的转换。

是的,如果operator==不在那里,那么下一个最佳候选者(当然也是可行的)是运算符LPCTSTR,它将被调用以获得兼容的参数。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4224843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档