Lets say I have a base class and a derived class:

```
class Base
{
    public:
        virtual ~Base() {}
        virtual void DoSomething() = 0;
};

class Child : public Base
{
    public:
        virtual void DoSomething()
        {
            // Do Something
        }
};

```

Is it safe to initialize an std::auto\_ptr of the type of the base class with a pointer to an instance of the derived class? I.E. will an object created like this:

```
std::auto_ptr<Base> myObject(new Derived());

```

correctly call the destructor of the derived class instead of the base class without leaking memory?