这行做什么,“ string ret(v);”?

时间:2019-03-25 10:08:05

标签: c++

“ string ret(v);”是什么意思?在下面的代码中?

char t(char c)
{
    return tolower(c);
}
string toLower(const string & v)
{
    string ret(v);
    transform(ret.begin(), ret.end(), ret.begin(),  t);
    return ret;
}

1 个答案:

答案 0 :(得分:0)

  

string ret(v); [...]是什么意思?

这将创建名称为v的函数自变量ret的副本。然后通过调用std::transform更改此副本,并按值返回。

请注意,v是通过const限定的引用传递的。在功能内无法更改。这就是为什么要创建一个副本来创建一个可以修改的字符串对象,然后将其返回给调用者的原因。