C++ 11 std::shared_ptr的总结与使用示例代码详解,能否详细阐述?

2026-04-19 00:171阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计822个文字,预计阅读时间需要4分钟。

C++ 11 std::shared_ptr的总结与使用示例代码详解,能否详细阐述?

最近查看代码,发现智能指针使用较多。自己平时用的少,周末自己总结总结。方便后续继续使用。

+ std::shared_ptr 概括总结有以下几点:

(1)智能指针主要用途是方便资源的管理,自动释放没有的指针;(2)主要应用于资源管理,如动态分配的内存、文件句柄、网络连接等;(3)自动释放指针,避免内存泄漏。

最近看代码,智能指针用的比较多,自己平时用的少,周末自己总结总结。方便后续使用。

std::shared_ptr大概总结有以下几点:

(1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。

(2) 使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占1个引用)

(3) 在赋值操作中, 原来资源的引用计数会减一,新指向的资源引用计数会加一。

std::shared_ptr<Test> p1(new Test); std::shared_ptr<Test> p2(new Test); p1 = p2;

(4) 引用计数加一/减一操作是原子性的,所以线程安全的。

(5) make_shared要优于使用new,make_shared可以一次将需要内存分配好。

std::shared_ptr<Test> p = std::make_shared<Test>(); std::shared_ptr<Test> p(new Test);

(6)std::shared_ptr的大小是原始指针的两倍,因为它的内部有一个原始指针指向资源,同时有个指针指向引用计数。

阅读全文

本文共计822个文字,预计阅读时间需要4分钟。

C++ 11 std::shared_ptr的总结与使用示例代码详解,能否详细阐述?

最近查看代码,发现智能指针使用较多。自己平时用的少,周末自己总结总结。方便后续继续使用。

+ std::shared_ptr 概括总结有以下几点:

(1)智能指针主要用途是方便资源的管理,自动释放没有的指针;(2)主要应用于资源管理,如动态分配的内存、文件句柄、网络连接等;(3)自动释放指针,避免内存泄漏。

最近看代码,智能指针用的比较多,自己平时用的少,周末自己总结总结。方便后续使用。

std::shared_ptr大概总结有以下几点:

(1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。

(2) 使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占1个引用)

(3) 在赋值操作中, 原来资源的引用计数会减一,新指向的资源引用计数会加一。

std::shared_ptr<Test> p1(new Test); std::shared_ptr<Test> p2(new Test); p1 = p2;

(4) 引用计数加一/减一操作是原子性的,所以线程安全的。

(5) make_shared要优于使用new,make_shared可以一次将需要内存分配好。

std::shared_ptr<Test> p = std::make_shared<Test>(); std::shared_ptr<Test> p(new Test);

(6)std::shared_ptr的大小是原始指针的两倍,因为它的内部有一个原始指针指向资源,同时有个指针指向引用计数。

阅读全文