从shared_ptr中分离指针的方法是使用std::shared_ptr::get()
成员函数。这个函数返回一个指向shared_ptr
管理的对象的原始指针。
例如:
#include<iostream>
#include<memory>
int main() {
std::shared_ptr<int> shared_ptr = std::make_shared<int>(42);
int* raw_ptr = shared_ptr.get();
std::cout << "shared_ptr: "<< shared_ptr.use_count()<< std::endl;
std::cout << "raw_ptr: " << *raw_ptr<< std::endl;
return 0;
}
在这个例子中,我们创建了一个shared_ptr
,并使用get()
函数从中提取了一个原始指针。然后,我们打印了shared_ptr
的引用计数和原始指针的值。
需要注意的是,从shared_ptr
中分离出来的原始指针不会影响shared_ptr
的引用计数,因此在使用原始指针时需要特别小心,以避免出现内存泄漏或其他问题。
领取专属 10元无门槛券
手把手带您无忧上云