我可以随意为C的字符串类编写一个operator()函数,所以我不必使用< sstream>连接字符串?
例如,而不是做
someVariable << "concatenate" << " this";
我可以添加一个operator(),这样我就能做到
someVariable = "concatenate" + " this";
?
解决方法
std :: string运算符会连接两个std :: strings.然而你的问题是“连接”和“这个”不是两个std :: strings;它们是const char []类型.
如果你想连接两个文字“concatenate”和“this”由于某种原因(通常你可以在多行上分割字符串),你可以:
string someVariable = "concatenate" " this";
并且编译器会意识到你实际上想要字符串someVariable =“concatenate this”;
如果“concatenate”和“this”存储在std :: strings中,则以下内容有效:
string s1 = "concatenate"; string s2 = " this"; string someVariable = s1 + s2;
要么
string s1 = "concatenate"; string someVariable = s1 + " this";
甚至
string someVariable = string("concatenate") + " this";
调用运算符时,“this”将自动转换为std :: string对象.要进行此转换,至少有一个操作数必须是std :: string类型.