[求助]Singleton Pattern类定义中,析构函数为什么定义成虚函数?
<<Design Pattern>> 一书中,Singleton Pattern类定义时把析构函数写成虚函数,析构函数为什么要是虚函数?总是想不明白,各位仁兄能解释一下吗?
下面是Singleton Pattern的类定义,
class CSingletonAutoPtr
{
private:
static auto_ptr<CSingletonAutoPtr> m_auto_ptr;
static CSingletonAutoPtr* m_instance;
protected:
CSingletonAutoPtr();
CSingletonAutoPtr(const CSingletonAutoPtr&);
virtual ~CSingletonAutoPtr();
//allow auto_ptr to delete, using protected ~CSingletonAutoPtr()
friend class auto_ptr<CSingletonAutoPtr>;
public:
static CSingletonAutoPtr* GetInstance();
void Test();
};