美文网首页
C++ 智能指针

C++ 智能指针

作者: 厝弧 | 来源:发表于2017-04-12 20:41 被阅读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();
    }
    

    共有如下:

    • 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++ 智能指针

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