我的功能:
void Object::actionsFace(std::string &line, int &iteration_face);
我将substr传递给函数
actionsFace(line.substr(begin, i), cnt)
它不起作用。
如果我使用:
std::string test = line.substr(begin, i);
actionsFace(line.substr(begin, i), cnt);
工作正常。
如何将 substr 用于我的函数?
最佳答案
您正在尝试将 std::string::substr
返回的临时值绑定(bind)到非常量引用。你不能那样做,但你可以绑定(bind)到一个常量引用:
void Object::actionsFace(const std::string &line, int &iteration_face);
这将传递对临时字符串的引用,但您不能在函数内部修改它。
或者,您可以显式制作一个拷贝,就像示例中的 test
一样。或者,如果您只需要函数内部字符串的本地拷贝,您可以按值传递:
void Object::actionsFace(std::string line, int &iteration_face);
关于c++ - 我的函数不传输 substr c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786551/