我可以将在ggg
函数中创建的字符串返回到h
变量,或者它可能已经被销毁了吗?
std::string ggg()
{
std::string g = "blabla" ;
return g;
}
int main( int argc, char ** argv )
{
std:string h = ggg();
}
最佳答案
是的,您可以,它不会被销毁,而是可以复制或移动。至于这将发生什么,则取决于ggg()
被唤醒的上下文。
例如,如果您这样称呼它:
std:string h = ggg();
从
std::string
返回的ggg()
将被删除/移动。如果按以下方式调用它:
std::string h;
...
h = ggg();
返回的值将被复制到
h
。关于c++ - 返回对象作为函数结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25688830/