gpt4 book ai didi

c++ - 返回共享指针

转载 作者:太空狗 更新时间:2023-10-29 20:52:40 25 4
gpt4 key购买 nike

在 C++ 中,如果我从函数返回共享/唯一 ptr,它是否按值返回?即

shared_ptr<CLASS> function_f(){
auto p = make_shared<CLASS>(5);
return p;
}

那么会发生什么?里面的指针是动态分配的吗?如果我返回这个,我是否有 2 个指向同一事物的指针?

最佳答案

shared_ptr 本身按值返回。它指向的 CLASS 对象是动态分配的,因此不会被复制。

您可能会短暂地对同一个对象有两个 shared_ptr(RVO 除外,所以在实践中您可能不会),但通过 shared_ptr 类的设计, 这不是问题。

关于c++ - 返回共享指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45607062/

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