0
RWCString str = "Y";
str.append("ES");
if("YES" == str)
    cout << "YES == str" << endl;
if(str == "YES")
    cout << "str == YES" << endl;

在这两种情况下,隐式转换是如何发生的?哪一种可以安全使用?RWCString 是一个字符串类,它有一个使用 const char* 的构造函数和一个到 const char* 的转换运算符

4

1 回答 1

0

和之间的比较极有可能==过载。const char*RWCString

否则要么str转换为,const char *要么调用不明确:

str == "YES"如果有外部或成员operator==比较两个RWCStrings,则不明确。

"YES" == str如果有一个外部operator==比较两个RWCStrings 是模棱两可的。

(假设参数operator==是正常传递的——通过副本或const引用)。

于 2011-01-12T11:19:13.300 回答