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

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

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


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

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


c++ - BSTR和_bstr_t有什么区别?

任何人都可以解释上面提到的类型和一些示例用法之间的区别,以清楚地解释两者之间的区别吗? 任何帮助将不胜感激! 注:这个问题是从另外一个问题中分离出来的…


c++ - auto_ptr是否被弃用?

auto_ptr会在传入的C++标准中被弃用吗? unique_ptr应该用于所有权转移而不是shared_ptr? 如果unique_ptr不在标准中,那么是否需要使用shared_ptr?…



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引用传递它们或后悔你的方式的错误。 它们不是邪恶的,但应该谨慎使用…




pointer知乎 shared_ptr 智能指针的好处 原始指针 unique_ptr 智能指针的指针 智能指针引用 智能指针应用场景 智能指针nullptr shared_ptr使用场景