给定这两个修改并返回字符串的函数:
// modify the original string, and for convenience return a reference to it
std::string &modify( std::string &str )
{
// ...do something here to modify the string...
return str;
}
// make a copy of the string before modifying it
std::string modify( const std::string &str )
{
std::string s( str );
return modify( s ); // could this not call the "const" version again?
}
这段代码适用于我使用 GCC g++,但我不明白为什么/如何。我担心第二个函数会调用自己,让我失去控制的递归,直到堆栈耗尽。这能保证工作吗?