在 C++ 中,boost::shared_ptr
是一个智能指针,用于管理动态分配的对象的生命周期。当最后一个 boost::shared_ptr
指向对象时,对象会自动释放。如果你想故意删除一个 boost::shared_ptr
,可以通过以下方法:
reset()
方法将其指向一个空指针:boost::shared_ptr<MyObject> ptr(new MyObject());
ptr.reset();
boost::shared_ptr
赋值给一个空的 boost::shared_ptr
:boost::shared_ptr<MyObject> ptr(new MyObject());
boost::shared_ptr<MyObject> emptyPtr;
ptr = emptyPtr;
release()
方法释放所有权,并返回指向对象的原始指针:boost::shared_ptr<MyObject> ptr(new MyObject());
MyObject* rawPtr = ptr.release();
delete rawPtr; // 需要手动删除对象
请注意,在删除 boost::shared_ptr
之后,你需要确保不再使用它,因为它已经指向了一个已释放的对象,这可能导致未定义的行为。
领取专属 10元无门槛券
手把手带您无忧上云