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?
 
     
     
     
    