// 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; }
第二讲 auto_ptr智能指针
时间: 2024-10-26 22:26:36