C++ 智能指针

2017-04-12  本文已影响0人  厝弧

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();
}

共有如下:

  • 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

上一篇下一篇

猜你喜欢

热点阅读