C++ 智能指針

Ref:
http://qa.helplib.com/176561
http://blog.csdn.net/dbzhang800/article/details/6403285
https://my.oschina.net/shelllife/blog/50810

1 簡介

C++語言沒有自動內存回收機制,大部分使用C寫的上規模的軟件都存在一些內存方面的錯誤,產品的穩定需要花費大量的時間以及精力。對于C++而言,使用智能指針能便面該類問題。

2 智能指針

智能指針包含于頭文件memory中。如下所示:

#include <QCoreApplication>
#include <memory>
using namespace std;
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   shared_ptr<double> pd;
   return a.exec();
}

共有如下:

  • STL
  • auto_ptr (C++11已經摒棄)
  • unique_ptr
  • shared_ptr
  • weak_ptr

使用注意事項:

  • 必須顯示的使用智能指針對象
shared_ptr<double> pd; 
double *p_reg = new double;pd = p_reg; // not allowed (implicit conversion)
pd = shared_ptr<double>(p_reg); // allowed (explicit conversion)
shared_ptr<double> pshared = p_reg; // not allowed (implicit conversion)
shared_ptr<double> pshared(p_reg); // allowed (explicit conversion)

2.1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 導讀## 最近在補看《C++ Primer Plus》第六版,這的確是本好書,其中關于智能指針的章節解析的非常清晰...
    小敏紙閱讀 2,020評論 1 12
  • 1. 什么是智能指針? 智能指針是行為類似于指針的類對象,但這種對象還有其他功能。 2. 為什么設計智能指針? 引...
    MinoyJet閱讀 646評論 0 1
  • 專屬所有權:unique_ptr 我們大多數場景下用到的應該都是 unique_ptr。 unique_ptr 代...
    wayyyy閱讀 1,239評論 0 1
  • C++智能指針 原文鏈接:http://blog.csdn.net/xiaohu2022/article/deta...
    小白將閱讀 6,889評論 2 21
  • C++ STL里面一共提供了4種智能指針: 第一個是C++98提供的,后面三個是C++11提供的(第一個已經被C+...
    Mordekaiser閱讀 837評論 0 1