zoukankan      html  css  js  c++  java
  • C++智能指针解析

    前言

    在C++程序中,内存分为三种静态内存、栈内存、堆内存。其中静态内存和栈内存由系统进行维护,而堆内存则是由程序员自己进行维护,也就是我们在new和delete对象时,这些对象存放的区域。任何有C++开发经验的人都知道,在程序中newdelete必须成对使用,当我们动态申请的对象不再使用时,一定要记得使用delete释放,不然就会造成内存泄漏。然而,在程序最容易出现的问题就是,记得申请而忘记了释放;还有一种是其他引用还在使用,结果提前释放引发了内存引用异常……。
    于是为安全使用动态内存,在C++ 11中,新增了指针神器——智能指针。智能指针能自动在生命周期结束后负责对内存资源进行释放。
    定义智能指针的三个类全部定义在memory头文件中。它们分别是

    • shared_ptr :共享指针,允许多个指针指向同一对象
    • unique_ptr :独占指针,该指针独占所指向的对象
    • weak_ptr :弱引用,指向shared_ptr所管理的对象。
  • 相关阅读:
    R语言 单变量重命名与删除
    R语言 查看函数源代码
    R语言 for循环之break,next
    ROC & AUC笔记
    rmarkdown教程
    github教程
    logistic regression与SVM
    sql语句,order by
    将权重加载到不同的结构(有一些共同层)
    人脸识别数据集
  • 原文地址:https://www.cnblogs.com/fancy-li/p/11446927.html
Copyright © 2011-2022 走看看