#include <memory>//shared_ptr要用的头文件 using namespace std; class A //测试auto_ptr和shared_ptr的delete能力 { public: A(){ cout << 'A' << endl; } ~A(){ cout << "~A" << endl; } }; int main() { // int *a = new int(3); // auto_ptr<int> p1 = a;//并不能这样初始化 auto_ptr<int> p1(new int(3)); auto_ptr<A> p2(new A); cout << *p1 << endl; *p1 = 4; //可以改变值 cout << *p1 << endl; auto_ptr<int> p3(p1);//p3取代了p1,p1置为NULL,同一个地址,只能被一个auto_ptr所指 //-------------------shared_ptr 内容------------- shared_ptr<int> p4(new int(3)); shared_ptr<int> p5(p4);//p5将携手p4共同管理 cout << *p4 << endl<<*p5<<endl; }