请问Singleton类的析构函数有关问题

请教Singleton类的析构函数问题
为什么析构函数没有调用?
代码如下,请教大家了。。。
class Singleton
{
public:
static Singleton * Instance(); 
int add(int a, int b) {return a+b;}

protected:
Singleton();
~Singleton();

private:
static Singleton * _singleton;
};
Singleton * Singleton::_singleton = NULL;

Singleton::Singleton()
{
cout << "create singleton" << endl;
}

Singleton::~Singleton()
{
delete _singleton;
cout << "destroy singleton" << endl;
}

Singleton * Singleton::Instance()
{
if (NULL == _singleton)
_singleton = new Singleton;

return _singleton;
}

int main()
{
cout << Singleton::Instance()->add(2, 3) << endl;

return 0;
}

------解决方案--------------------
C/C++ code
_singleton = new Singleton;