gpt4 book ai didi

c++ - 函数中auto_ptr的返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:51 27 4
gpt4 key购买 nike

我遇到过这样的代码。

MyClass MyClass::get_information (const some_datastructure *record)
{
auto_ptr<MyClass > variable (new MyClass ());

variable ->set_article_id(record->article_id);

return *variable.get();
}

我知道这会返回一个(拷贝?)MyClass 类型的对象。最初,我认为它正在返回对我来说没有意义的 auto_ptr 对象(?)因为我认为 auto_ptr 对象在超出范围时会被销毁。

无论如何,上面的代码可以吗?对象 *variable.get() 在函数返回时/之后是否存在?

最佳答案

因为它是按值返回的,是的,这个对象很好,虽然我不明白指针或堆分配的使用...使用常规变量会更简单:

MyClass var;
var.set_article_id(record->article_id);
return var;

关于c++ - 函数中auto_ptr的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com