我可以将在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/

10-16 04:31