我是c ++编程的新手。一直在摆弄字符串库,我遇到了让我难过的东西。
仅供参考:这是针对字符串章节加速c ++的练习。我来自java,javascript背景,我不明白为什么第二个语句不能编译,但第三个语句不能编译。
我猜它必须在幕后使用字符串作为const char []数组做一些事情,但如果有人能够解释为什么第二个语句导致编译时错误而第三个编译好了。
int main() {
std::string exclam = "!";
// Does not compile. Error: invalid operands of types 'const char [6]' and 'const char [8]' to binary 'operator+'
std::string invalidMessage = "Hello" + ", world" + exclam;
// Works ... Why???
std::string validMessage = exclam + "Hello" + ", World";
return 0;
}
如果有人能向我解释这里发生了什么,我将非常感激。提前谢谢!