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,240评论 0 1
  • C++智能指针 原文链接:http://blog.csdn.net/xiaohu2022/article/deta...
    小白将阅读 6,894评论 2 21
  • C++ STL里面一共提供了4种智能指针: 第一个是C++98提供的,后面三个是C++11提供的(第一个已经被C+...
    Mordekaiser阅读 837评论 0 1