gpt4 book ai didi

c++ - C++中的自动指针和共享指针有什么区别

转载 作者:可可西里 更新时间:2023-11-01 17:08:17 24 4
gpt4 key购买 nike

我听说自动指针拥有它们的对象,而共享指针可以有许多指向它们的对象。为什么我们不一直使用共享指针。

关于什么是智能指针,人们将这个术语与共享指针互换使用。它们是一样的吗?

最佳答案

std::auto_ptr 是独占指针所有权的过时、弃用实现。在 C++11 中,它已被 std::unique_ptr 取代。排他性所有权意味着指针为某物所有,对象的生命周期与所有者的生命周期相关联。

共享指针 (std::shared_ptr) 实现共享指针所有权——只要存在对对象的引用,它们就会使对象保持事件状态,因为没有单一所有者。它通常通过引用计数完成,这意味着与唯一指针相比,它们有额外的运行时开销。此外,关于共享所有权的推理比独占所有权的推理更困难——破坏点变得不那么确定。

智能指针是一个术语,涵盖所有行为类似于指针的类型,但具有添加的(智能)语义,与原始 T* 不同。 unique_ptrshared_ptr 都是智能指针。

关于c++ - C++中的自动指针和共享指针有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385342/

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