我有这个代码:
#include <iostream>
using namespace std;
int main()
{
string name = "John ";
int age = 32;
name += age;
cout << name << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码编译成功但在运行时背叛,因为它默默地忽略连接部分并打印:
John
Run Code Online (Sandbox Code Playgroud)
我知道我们需要使用stringstream来完成任务.但为什么上面的代码编译?因为以下代码:
#include <iostream>
using namespace std;
int main()
{
string name = "John ";
int age = 55;
name = name + age;
cout << name << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
适当抛出和错误:
错误:'name + age'中的'operator +'不匹配
我从Java中知道,与前一个构造a += b
不同,a = a + b
将结果类型化为a的类型. …