gpt4 book ai didi

c++ - 关于C++中智能指针的问题

转载 作者:行者123 更新时间:2023-11-28 01:07:54 25 4
gpt4 key购买 nike

auto_ptr 只适用于局部变量吗?
如果我也需要使用类,是否需要复制指针?

最佳答案

auto_ptr 析构函数确实释放了内存,所以你是对的。一旦你离开 auto_ptr 的范围,你指向的东西就会消失。您可能正在寻找类似 shared_ptr 的东西,它是一个引用计数智能指针。它将成为下一个 C++ 标准的一部分。 Boost has an implementation它的,它也是part of the TR1 library .如果您的编译器支持 std::tr1 实体,那么您应该拥有 shared_ptr。

编辑

正如评论中所指出的,auto_ptr 复制语义会导致所有权转移,但不一定会导致删除对象。因此,一个 auto_ptr 类型变量可以赋值给另一个,并且可以用作函数返回值。 auto_ptr 的关键是一次只有其中一个可以引用特定实体。

我想我正在分配 scoped_ptr 的特征auto_ptr 不正确而且有点不公平。我自己的偏见是反对 auto_ptr,因为所有权的转移会对源对象造成副作用,而这种副作用通常与复制无关。

关于c++ - 关于C++中智能指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161473/

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