shared-ptr相关内容

C++继承和共享指针

情况是这样的。假设我们有一个虚拟基类(例如ShapeJuggler),它包含一个方法,该方法将指向虚拟基类对象的共享指针(例如Shape)作为参数。让我们跳到下面的伪代码来理解: class Shape { } class ShapeJuggler { virtual void juggle(shared_ptr) = 0; } // Now deriving a cl ..
发布时间:2022-07-19 23:54:01 C/C++开发

智能指针在具有自动存储持续时间的对象上的使用

如果我将智能指针(scoped_ptr、unique_ptr或shared_ptr)应用到具有自动存储持续时间(即存储在堆栈上)的对象上,会有问题吗?我假设不会像在两种情况下那样(有或没有智能指针),如果没有更多的指针指向它们,它们将被删除。指针本身始终具有自动存储持续时间,即,如果超出范围,它们将被删除。 推荐答案 是,有一个问题(一个很大的问题):您正在使用智能指针做一些它们不是设 ..
发布时间:2022-05-12 15:38:02 C/C++开发

从引用创建SHARED_PTR

我对C++比较陌生,这个问题听起来像个初学者问题,但我无法用Internet上的其他资源解决它。 我正在尝试从引用创建一个Shared_PTR。我有以下Book类: #include #include "Author.hpp" class Book { public: void setAuthor(const Author& t_author); ..
发布时间:2022-05-12 14:52:53 C/C++开发

测试类型是否为(智能)指针的通用方法

在我的代码中,我需要测试赋予模板的类型是否为指针--无论它是否智能。根据Boost的说法,没有可靠和通用的方法来做到这一点(参见here)--或者有吗? 到目前为止,我检查了以下内容: A:T可以转换为void*吗? B:T有get()方法吗? C:T有名为element_type的类型吗? D:get()是否返回element_type*? 如果(A||B&;&am ..
发布时间:2022-05-12 14:43:10 C/C++开发

shared_ptr 与 CComPtr

我有点习惯于通过 COM 引用计数的概念,而且我对 shared_ptr 有点陌生.CComPtr 有几个不错的属性,我在 shared_ptr 中找不到,我想知道防止误用 shared_ptr 的模式是什么. AddRef/Release 模式保证每个对象只有一个引用计数(引用计数存储在对象本身上),所以当您有一个随机指针围绕它创建一个 CComPtr 时,它是安全的.另一方面,share ..
发布时间:2022-01-14 12:22:57 C/C++开发

用智能指针实现一个简单的单向链表

嗨,我正在尝试使用智能指针实现一个简单的单链表,这是我到目前为止所拥有的,我选择使用 C++ 的 shared_ptr,但我读到 unique_ptr 更适合这种情况,但是,我不真的不知道您将如何遍历列表(即 currentNode = currentNode->next)以到达列表的末尾,以便使用 unique_ptr 插入一个元素.这是我到目前为止的代码: template 类链表;模板 类 ..
发布时间:2022-01-01 18:29:49 C/C++开发