gpt4 book ai didi

c++ - 为什么我不应该总是使用 shared_ptr 和 unique_ptr 而是使用普通指针?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:32 24 4
gpt4 key购买 nike

我有 C#obj-c 的背景,所以 RC/GC 是我(仍然)珍视的东西。当我开始更深入地学习 C++ 时,我一直想知道为什么在它们如此不受管理 时我会使用普通指针而不是其他替代解决方案?

shared_ptr 提供了一种很好的方式来存储引用并且不会在不删除它们的情况下丢失它们。我可以看到普通指针的实用方法,但它们似乎只是不好的做法。

有人可以解释这些替代方案吗?

最佳答案

当然,如果他们拥有指针,我们鼓励您使用共享和唯一的 ptr。但是,如果您只需要一个观察者,那么原始指针就可以了(指针不对其指向的任何内容负责)。

std::uniqe_ptr 基本上没有开销,std::shared_ptr 有一些开销,因为它为您进行引用计数,但您很少需要在这里节省执行时间。

此外,如果您可以通过设计保证生命周期/所有权层次结构,则不需要“智能”指针;假设树中的父节点比其子节点生命周期长 - 尽管这与指针是否实际拥有某物这一事实略有相关。

关于c++ - 为什么我不应该总是使用 shared_ptr 和 unique_ptr 而是使用普通指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20315250/

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