智能指针是一种C++语言中的类,可以像指针一样引用对象,但可以自动管理对象的内存。C++中有三种常用的智能指针:unique_ptr、shared_ptr和weak_ptr。文章来源地址https://www.toymoban.com/news/detail-430148.html
- unique_ptr:是一种独占所有权的智能指针,即同一时间只能有一个unique_ptr指向某个对象。当unique_ptr超出作用域或被删除时,它所指向的对象也将被自动删除。因此,unique_ptr是一种非常安全和高效的智能指针。例如:
std::unique_ptr<int> ptr(new int(10)); std::cout << *ptr << std::endl; // 输出10
- shared_ptr:是一种共享所有权的智能指针,即可以有多个shared_ptr指向同一个对象。每个shared_ptr都有一个引用计数器,记录当前有多少个shared_ptr指向同一个对象。当引用计数器为0时,对象也将被自动删除。因此,shared_ptr可以避免内存泄漏和重复释放等问题。例如:
std::shared_ptr<int> ptr1(new int(10)); std::shared_ptr<int> ptr2 = ptr1; std::cout << *ptr1 << " " << *ptr2 << std::endl; // 输出10 10
- weak_ptr:是一种弱引用的智能指针,即不能直接访问对象,而是需要先将weak_ptr转换为shared_ptr才能访问。weak_ptr通常用于避免shared_ptr之间的循环引用问题。例如
文章来源:https://www.toymoban.com/news/detail-430148.html
到了这里,关于C++中常用的智能指针的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!