#include
#include
using namespace std;
class MyClass {
public:
MyClass() {
cout << "constructing\n";
}
~MyClass() {
cout << "destructing\n";
}
void f() {
cout << "f()\n";
}
};
int main()
{
auto_ptr 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()
destructing