我正在阅读Koenig的Accelerated C++.他写道:"新的想法是我们可以使用+来连接字符串和字符串文字 - 或者就此而言,使用两个字符串(但不是两个字符串文字).
很好,我认为这是有道理的.现在进行两个单独的练习,意在阐明这一点.
以下定义是否有效?
const string hello = "Hello";
const string message = hello + ",world" + "!";
Run Code Online (Sandbox Code Playgroud)
现在,我尝试执行上述操作并且有效!所以我很高兴.
然后我试着做下一个练习;
const string exclam = "!";
const string message = "Hello" + ",world" + exclam;
Run Code Online (Sandbox Code Playgroud)
这没用.现在我明白它与你无法连接两个字符串文字的事实有关,但我不理解为什么我设法让第一个例子工作之间的语义差异(不是",世界"和"! "两个字符串文字?这不应该没用吗?"但不是第二个.
我有一个关于C++中字符串连接的问题.
string str = "ab" + 'c';
cout << str << endl;
char ch = 'c';
string str1 = "ab";
string str2 = str1 + ch;
cout << str2 << endl;
Run Code Online (Sandbox Code Playgroud)
代码产生:
ed before SaveGraphicsState
abc
Run Code Online (Sandbox Code Playgroud)
有人可以解释这一行的处理:string str = "ab" + 'c';?