可以說我有一個基類和派生類:使用指向派生類的指針初始化auto_ptr是否安全?
class Base
{
public:
virtual ~Base() {}
virtual void DoSomething() = 0;
};
class Child : public Base
{
public:
virtual void DoSomething()
{
// Do Something
}
};
它是安全初始化的std ::基類的指針類型的auto_ptr的派生類的實例? I.E.會創建一個這樣的對象:
std::auto_ptr<Base> myObject(new Derived());
正確地調用派生類的析構函數而不是基類沒有泄漏內存?
這個問題不依賴於auto_ptr,是嗎?它涉及所有的指針。如果你不能這樣做,你不可能在C++中擁有多態性,這會讓人難過。 –
@PeterSchneider此問題特定於auto_ptr。主要我想確保它的[實現沒有切片傳入的對象](http://stackoverflow.com/questions/274626/what-is-the-slicing-problem-in-c),但我也想要學習像虛擬析構函數那樣的陷阱。 – TwentyMiles