首页 > 代码库 > 第二讲 auto_ptr智能指针

第二讲 auto_ptr智能指针

// STL.cpp : 定义控制台应用程序的入口点。////智能指针在其生命周期结束后会自动调用delete#include "stdafx.h"#include<iostream>#include<memory>using namespace std;class WebSite{public:    WebSite(int x){i = x;cout << i << "调用构造函数" << endl;}    ~WebSite(){cout << "调用析构函数" << endl;}    void output(){cout << "output" << endl;}private:    int i;};int _tmain(int argc, _TCHAR* argv[]){    auto_ptr<WebSite> autop1(new WebSite(4));//定义了一个WebSite类的指针autop    auto_ptr<WebSite> autop2(new WebSite(7));    autop1->output();    cout << autop1.get() << endl;        //得到auto的一个指针    cout << autop2.get() << endl;    //autop1.reset();                        //将auto指向NULL    //cout << autop1.get() << endl;    ////autop1->output();                    //reset之后auto不可以再使用了    autop1 = autop2;            //析构原来autop1指向的地址,将autop2指向的之地址赋给autop1。                                //也就是说智能指针只能对一个对象并保持该地址    cout << autop1.get() << endl;    cout << autop2.get() << endl;    return 0;}