我写了一些这样的代码:
#include<string>
using namespace std;
int main() {
string str;
...
if(str=="test") //valid????
//do something
...
return 0;
}
后来重新阅读代码后,我很好奇编译器是如何没有错误的?
注意:我已经检查了参考,看起来应该存在某种类型不匹配错误(将字符串对象与 char 数组进行比较)
编辑:抱歉 = to == 拼写错误。它已经修复了
编辑2:问题:
- 参考文献中没有定义任何 operator==(string,char*) 或 operator==(string,char[]) 或类似的运算符(cppreference.com)
- 没有从 char* 或 char[] 到字符串的转换运算符