Hi,
I am learning to use auto_ptr.
my question is in purple comments below.
Code:#include <iostream> using namespace std; class Base { public: virtual void print()=0; }; class A : public Base { public: void print() { cout << "A" << endl; } }; class B : public Base { public: void print() { cout << "B" << endl; } }; int main() { auto_ptr<Base> owner; if(5==5) { A* a = new A; owner = a; // this was my first guess, does not compile though. owner = auto_ptr<Base>(a); // this compiles. is this how you do it? } else { B* b = new B; owner = auto_ptr<Base>(b); } owner->print(); return 0; }