Saturday, December 6, 2008

C++ Code Example: auto_ptr

Sphere: Related Content #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;
  auto_ptr<MyClass> p3(p1);
  p2 = p1; // transfer ownership
  p2->f();
  p3->f();
  // can assign to a normal pointer

  MyClass *ptr = p2.get();

  ptr->f();
  return 0;
}

No comments: