Pointer C++ Tutorial

#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