c++ - 智能指针:或谁拥有你的宝贝?

c++ - 智能指针:或谁拥有你的宝贝?

C++全是关于内存所有权的 又名“ 所有权语义 ” 一块动态分配的内存的所有者负责释放该内存。 所以这个问题真的变成谁拥有记忆。 在C++中,所有权由一个RAW指针包装在内部的类型记录,因此在一个好的(IMO)C++程序中,很少见到RAW RAW指针传递过来(因为RAW指针没有推断的所有权,所以我们不能告诉谁拥有记忆,因此如果没有仔细阅读文件,你不能分辨谁对所有权负责)。 相反,…


c++ - 什么是智能指针,我应该什么时候使用它?

什么是智能指针,我应该什么时候使用它?…


c++ - 智能指针(增强)解释

以下一组指针有什么区别? 什么时候在生产代码中使用每个指针? 例如,将不胜感激! scoped_ptr shared_ptr weak_ptr intrusive_ptr 你在生产代码中使用boost吗?…


c++ - 谷歌可以用智能指针返回类型模拟一个方法吗?

我有一个返回智能指针的工厂。 无论我使用什么智能指针,我都无法让Google Mock嘲笑工厂方法。 模拟对象是纯抽象接口的实现,其中所有方法都是虚拟的。 我有一个原型: MOCK_METHOD0(Create, std::unique_ptr<IMyObjectThing>()); 我得到: "...gmock/gmock-spec-builders.h(1314): error C22…



C++ 11智能指针策略

据我了解,在当前的C++ 11规范中,应该使用: 一个所有者的std::unique_ptr<>(大部分时间) std::shared_ptr<>仅当非循环结构中有多个所有者时 std::weak_ptr<>只有在需要打破循环时才会谨慎 当引用不够时,原始指针作为内存句柄(无所有权) 所以我的问题是: 这些政策是否足够或是否有我应该注意的其他政策? scoped_ptr<>和aut…


C++ 11智能指针语义

我已经使用了几年的指针,但我最近才决定转换到C++ 11的智能指针(即唯一,共享和弱)。 我对它们进行了一些研究,这些是我得出的结论: 独特的指针很棒。 他们管理自己的内存,并且像原始指针一样轻量级。 首选尽可能多地使用unique_ptr而不是原始指针。 共享指针很复杂。 由于引用计数,它们具有显着的开销。 通过const引用传递它们或后悔你的方式的错误。 它们不是邪恶的,但应该谨慎使用…




smart pointer知乎 智能指针nullptr 原始指针 shared_ptr 智能指针面试 智能指针的指针 智能指针应用场景 智能指针实现 shared_ptr使用场景