Boost 类动态分配成员和复制/分配,如何避免重新分配和复制?

Boost 类动态分配成员和复制/分配,如何避免重新分配和复制?,boost,heap,shared-ptr,members,Boost,Heap,Shared Ptr,Members,简单的问题,我不想每次需要用堆指针复制对象时都分配和复制堆分配的内存,这很愚蠢,我可以将指针指向原始堆,并确保原始分配器不会删除指针 我想我需要一个引用计数指针…一个?我没有使用智能指针的经验,我只希望每次分配智能指针时增加引用计数,如果引用计数为0,则删除智能指针 这是共享ptr的情况吗?我能闭上眼睛用一下吗? 为什么不创建我自己的refcount\u ptr来增加赋值时的引用计数,并在析构函数上检查它?如果希望在原始对象和复制对象之间共享指针对象,可以使用boost::shared\u pt

简单的问题,我不想每次需要用堆指针复制对象时都分配和复制堆分配的内存,这很愚蠢,我可以将指针指向原始堆,并确保原始分配器不会删除指针

我想我需要一个引用计数指针…一个?我没有使用智能指针的经验,我只希望每次分配智能指针时增加引用计数,如果引用计数为0,则删除智能指针

这是共享ptr的情况吗?我能闭上眼睛用一下吗?
为什么不创建我自己的refcount\u ptr来增加赋值时的引用计数,并在析构函数上检查它?

如果希望在原始对象和复制对象之间共享指针对象,可以使用
boost::shared\u ptr
std::shared\u ptr

为什么不创建我自己的refcount\u ptr来增加引用 计算赋值并在析构函数上检查它


嗯,你可以编写你自己的
shared\u ptr
,但通常不值得重新发明轮子,除非现有的轮子不符合你的需要。

memcmp(shared\u ptr,shared\u ptr,sizeof(t))会像处理原始指针一样工作吗?@Icebone1000不,它甚至不会编译,因为shared\u ptr是一个对象实例,而不是指针。要访问参考底图原始指针,请使用shared_ptr::get()成员函数。