美文网首页
标准库:指针

标准库:指针

作者: 骑鲸公子_ | 来源:发表于2018-05-21 17:01 被阅读0次

5.1 RAII 与引用计数

智能指针包括 std::shared_ptr/std::unique_ptr/std::weak_ptr,使用它们需要包含头文件 <memory>

5.2 std::shared_ptr

std::shared_ptr 是一种智能指针,它能够记录多少个 shared_ptr 共同指向一个对象,从而消除显示的调用 delete,当引用计数变为零的时候就会将对象自动删除。使用 std::shared_ptr 仍然需要使用 new 来调用.

std::make_shared 就能够用来消除显示的使用 new,所以std::make_shared 会分配创建传入参数中的对象,并返回这个对象类型的std::shared_ptr指针

std::shared_ptr 可以通过 get() 方法来获取原始指针,通过 reset() 来减少一个引用计数,并通过get_count()来查看一个对象的引用计数。

5.3 std::unique_ptr

std::unique_ptr 是一种独占的智能指针,它禁止其他智能指针与其共享同一个对象,从而保证代码的安全.可以利用 std::move 将其转移给其他的 unique_ptr

5.4 std::weak_ptr

std::weak_ptr是一种弱引用(相比较而言 std::shared_ptr 就是一种强引用)。弱引用不会引起引用计数增加

相关文章

  • 标准库:指针

    5.1 RAII 与引用计数 智能指针包括std::shared_ptr/std::unique_ptr/std:...

  • NULL和nullptr的使用

    NULL是C 标准库表示空指针的类型,nullptr是C++ stl表示空指针的类型事实上,NULL或是nullp...

  • 【Poco笔记】智能指针

    Poco的智能指针跟标准库的思想是一样的,都是基于引用计数。主要提供了如下指针 AutoPtrAutoPtr接受的...

  • 8.5实例-fopen和getc函数的实现

    标准库中的文件不是通过文件描述符描述的,而是使用文件指针描述的.文件指针是一个指向包含文件各种信息的结构的指针,该...

  • Boolan c++笔记_1

    1. class有两种 不含有指针 含有指针 2. 基于对象 与 面向对象 3. c++语言 与 c++标准库 4...

  • C++11——动态内存

    智能指针 为了使管理动态内存更容易、更安全,新标准库提供了两种管理动态对象的智能指针类型。智能指针的作用类似于常规...

  • 杂记4

    定义指针变量,如果不赋给它地址,系统会随机给它分配一个地址。 C++标准库 C++ Standard Librar...

  • C++11自定义 std::unique_ptr智能指针

    库里面有现成的智能指针,在memory头文件里面,叫std::unique_ptr。平时工程还是优先选用标准库吧。...

  • Geekband C++ 第一周

    ● 概述:以c++标准库中的complex对象为例,介绍了成员无指针的类的基本写法 ● c++的历史○ 1.0:c...

  • Rust标准库

    [TOC] Rust标准库 Rust中的智能指针Box Box 允许将一个值放在堆上而不是栈上,留在栈上的则是指向...

网友评论

      本文标题:标准库:指针

      本文链接:https://www.haomeiwen.com/subject/jnhqjftx.html