如何使用+操作符在CPP中添加字符串和数字?



我已经使用cpp很长一段时间了,我知道我们不能添加字符串和数字(因为+操作符没有重载)。但是,我看到了这样的代码。

#include <iostream>
using namespace std;
int main() {
string a = "";
a += 97;
cout << a;
}

这个输出'a',我也试过这个。

string a ="";
a=a+97;

第二个代码给出了一个编译错误(作为+操作符,std::stringint的无效参数)。我不想把字符串和数字连接起来。有什么区别呢?为什么一种有效而另一种无效?

我期望a+=97a=a+97相同,但它似乎不同。

第一个代码片段之所以有效,是因为std::string覆盖了operator+=,将一个字符附加到字符串上。97是'a'的ASCII码,所以结果是"a"

第二个代码段不能工作,因为没有定义接受std::stringint+操作符,也没有将intchar转换为std::string的转换构造函数。+操作符有两次重载,都取一个char,但编译器无法判断使用哪一个。匹配有歧义,因此报告错误。

相关内容

  • 没有找到相关文章

最新更新