指向模板类的共享指针的向量
我有一个模板类 TaskRunner ,它采用多态类型 Task ,我想创建一个指向它们的共享指针的容器。 class Task { virtual void run() = 0; }; class LoudT…
“默认删除”尝试将 unique_ptr 与向量一起使用以实现 C++ 中的多态性时出错;
我对 C++ 比较陌生,我希望有人可以帮助我解决 unique_ptr 和向量遇到的问题。本质上,我试图使用多态性,以便我有一个“Base”类型的向量,它是一个…
为什么智能指针类型的成员变量不能在类的声明处初始化?
当我想向类中添加一个智能指针类型的成员变量时,我发现它无法在声明处初始化: class Foo { public: std::shared_ptr intSharedPtr = new int; // no…
将对象从局部变量移动到 std::shared_ptr
请注意,标题中的“对象”和“移动”一词并不是指 C++ 特定的对象是什么以及移动对象意味着什么的概念。 我有一个非常简单的结构类型的局部变量,我在…
将从工厂方法创建的 unique_ptr 转换为 shared_ptr 并使用 shared_from_this 后遇到 std::bad_weak_ptr 异常
总之,我有一个从 std::enabled_shared_from_this 继承的类,并且有一个工厂方法返回它的 std::unique_ptr 。在另一个类中,我将前一个类对象的 std::…
我想使用智能指针,但不确定在哪里使用以及何时使用
Closed. This question needs to be more focused. It is not currently accepting answers. 想要改进这个问题吗?通过编辑这篇文章来更新问题,使其…
在单例类中使用智能指针时出现C2248错误
在下面的代码中我遇到了 C2248 错误。当我用原始指针替换智能指针时,它会编译。不过我想使用智能指针 std::shared_ptr<>目的。 使用智能指针时如何纠…
关于从函数返回 unique_ptr 的问题
根据文档,说 我们已经对本地价值观和功能进行了隐式移动 返回语句中的参数。以下代码仅编译 很好: std::unique_ptr; f(std::unique_ptr ptr) { 返回…
在智能指针中存储数组类型时是否明确需要提供删除器?
根据这篇论文,常见的之一开发人员犯的错误(#3)是使用具有数组类型的智能指针;主要是因为会调用操作符delete而不是delete[],导致程序出现内存泄漏…
具有给定的类 C 分配和释放函数的shared_ptr
我得到了某个库的 API(准确地说是 nng) 它有一个类似 C 的接口,用于分配和取消分配消息对象: int nng_msg_alloc(nng_msg **, size_t); void nng_m…
shared_ptr 不会增加引用计数,但指向同一地址
这是我的代码片段: #include #include #include class A { public: int a = 100; A() { std::cout << "Create A" << std::endl; } ~A() { std::cout …
如何通过父类对象用共享指针访问子类
我有一个使用父 Node 类和子 Node 类(称为 Transaction)的链表。链表类(称为Ledger)使用共享指针来访问Node 和Transaction 类。 我的目标是将 << …