#include <iostream> #include <memory> using namespace std; class MyClass { public: MyClass() { cout << "constructing\n"; } ~MyClass() { cout << "destructing\n"; } void f() { cout << "f()\n"; } }; int main() { auto_ptr<MyClass> p1(new MyClass), p2; p2 = p1; // transfer ownership p2->f(); // can assign to a normal pointer MyClass *ptr = p2.get(); ptr->f(); return 0; }
constructing f() f() destructing