smart-pointers相关内容

为现有变量创建一个 boost::shared_ptr

我有一个现有的变量,例如 int a = 3; 我现在如何创建一个 boost::shared_ptr 到 a?例如: boost::shared_ptra_ptr = &a;//这不起作用 解决方案 尽管您应该在变量创建时将其放入托管指针中,以便从现有指针执行此操作. int *a=new int;boost::shared_ptr;a_ptr(a); 也就是说你绝对不想将堆栈变量 ..
发布时间:2021-12-24 15:29:28 C/C++开发

shared_ptr 在哪里?

经过几个小时试图找到 shared_ptr 的位置后,我现在非常沮丧.我看到的示例都没有显示完整的代码以包含 shared_ptr (和工作)的标题.简单地说明 std、tr1 和 根本没有帮助!我已经下载了提升,但仍然没有出现!有人能帮我确切地告诉我在哪里可以找到它吗? 谢谢你让我发泄我的不满! 编辑:我看到我的标题已更改.对于那个很抱歉.所以...也是因为我不清楚 shared_p ..
发布时间:2021-12-24 15:07:53 C/C++开发

智能指针(提升)解释

下面这组指针有什么区别?你什么时候在生产代码中使用每个指针(如果有的话)? 示例将不胜感激! scoped_ptr shared_ptr weak_ptr intrusive_ptr 您在生产代码中使用 boost 吗? 解决方案 智能指针的基本属性 当您拥有可以分配每个智能指针的属性时,这很容易.有三个重要的属性. 完全没有所有权 所有权 ..
发布时间:2021-12-24 14:58:58 C/C++开发

使用 shared_ptr 的示例?

嗨,我今天问了一个关于 如何插入不同的问题同一向量数组中的对象类型 和我在那个问题中的代码是 门* G[1000];G[0] = 新的与门();G[1] = 新 ORgate;//gate是ANDgate和ORgate类继承的类班级门{...........虚空运行(){//一个虚函数}};类 ANDgate : 公共门{...........无效运行(){//AND 版本的运行}};ORga ..
发布时间:2021-12-21 13:35:20 C/C++开发

C++11:用 std::shared_ptr() 替换所有非拥有的原始指针?

随着std::unique_ptr 的出现,瑕疵的std::auto_ptr 终于可以平息了.所以在过去的几天里,我一直在更改我的代码以使用智能指针并从我的代码中消除所有 delete. 虽然 valgrind 说我的代码是内存干净的,但智能指针的语义丰富性将使代码更清晰、更易于理解. 在大部分代码中,翻译很简单:使用std::unique_ptr代替拥有对象持有的原始指针,抛出del ..
发布时间:2021-12-21 10:15:25 C/C++开发

我什么时候应该使用原始指针而不是智能指针?

阅读后这个答案,看起来最好使用 智能指针 尽可能多,并将“普通"/原始指针的使用减少到最低限度. 这是真的吗? 解决方案 不,这不是真的.如果一个函数需要一个指针并且与所有权无关,那么我强烈认为应该传递一个常规指针,原因如下: 没有所有权,因此您不知道要传递什么样的智能指针 如果你传递一个特定的指针,比如shared_ptr,那么你将无法传递,比如,scoped_ptr ..
发布时间:2021-12-13 13:14:40 C/C++开发

我什么时候使用哪种指针?

好的,所以上次我写 C++ 为生时,std::auto_ptr 是所有可用的 std lib,而 boost::shared_ptr 是所有可用的愤怒.我从未真正研究过 boost 提供的其他智能指针类型.我知道 C++11 现在提供了 boost 提出的一些类型,但不是全部. 那么有人有一个简单的算法来确定何时使用哪个智能指针吗?最好包括关于哑指针(像 T* 这样的原始指针)和其他 boo ..
发布时间:2021-12-01 15:25:38 C/C++开发

C++ 中的 RAII 和智能指针

在 C++ 实践中,什么是 RAII,什么是 智能指针,这些是如何在程序中实现的,使用带有智能指针的 RAII 有什么好处? 解决方案 RAII 的一个简单(可能被过度使用)示例是 File 类.如果没有 RAII,代码可能如下所示: 文件文件("/path/to/file");//对文件做一些事情file.close(); 换句话说,我们必须确保在完成文件后将其关闭.这有两个缺点 - ..
发布时间:2021-12-01 15:09:51 C/C++开发

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

什么是智能指针,什么时候应该使用? 解决方案 UPDATE 这个答案相当陈旧,因此描述了当时什么是“好",即 Boost 库提供的智能指针.从 C++11 开始,标准库已经提供了足够多的智能指针类型,所以你应该倾向于使用 std::unique_ptr, std::shared_ptr 和 std::weak_ptr. 还有 std::auto_ptr.它非常像一个作用域指针, ..
发布时间:2021-12-01 14:40:07 C/C++开发

为什么 C++ 库和框架从不使用智能指针?

我在几篇文章中读到,几乎不应该使用原始指针.相反,它们应该始终包含在智能指针中,无论是作用域指针还是共享指针. 然而,我注意到像 Qt、wxWidgets 这样的框架和像 Boost 这样的库从不返回也不期待智能指针,就好像它们根本没有使用它们一样.相反,它们返回或期望原始指针.有什么理由吗?编写公共 API 时是否应该远离智能指针,为什么? 只是想知道为什么在许多主要项目似乎都避免使 ..
发布时间:2021-11-15 00:59:01 C/C++开发

指向 STL 容器的指针是否安全?

如果我让 unique_ptr 指向一个 STL 容器的实例会怎样?这段代码安全吗? unique_ptr>p1(新向量); 这不会导致 vector 的析构函数被调用两次,因为 vector 本身和 unique_ptr 都试图清理 vector 到目前为止获得的内存?这会导致未定义的行为吗?或者编译器是否知道 vector 已经释放了它的内存并且不会为了 unique_ptr 超出范围而再 ..
发布时间:2021-09-14 18:42:22 C/C++开发