如果我有一个函数myfunc(const char *x, int y)
和一个 std::string
变量mystring
,我可以打电话myfunc()
喜欢 myfunc((mystring + "string constant").c_str(), 4)
?如果没有,最好的方法是什么?
最佳答案
不,你不应该这样调用它。
myfunc((mystring + "string constant").c_str(), 4)
创建临时文件是为了保存mystring +“字符串常量”
。当您在该临时对象上应用 c_str
时,它将返回该字符串的内部句柄。因此,如果您得到不想要的结果,请不要感到惊讶。
关于C++ 字符串两边的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211128/