单例模式的析构有关问题

单例模式的析构问题
刚才看了下这个链接对于单例模式的讲解 http://blog.****.net/hackbuteer1/article/details/7460019
自己写了个程序测试了一下 发现最后的Garbo类中的析构函数相应的输出语句并没有输出 这不就说明析构没有实现吗?可是原帖的内容应该也不会错啊 求大神指导

/*************************************************************************
> File Name: Singleton.h
> Created Time: Sat 20 Jun 2015 03:04:28 PM CST
 ************************************************************************/
#ifndef GUARD_Singleton_h
#define GUARD_Singleton_h
#include <iostream>

class Singleton
{

public:

static Singleton* get_instance();
void show() const;

private:

Singleton(){}
static Singleton* pinstance;

class Garbo
{
public:
~Garbo()
{
if( Singleton::pinstance )
{
std::cout << "~Garbo() called." << std::endl;
delete Singleton::pinstance;
Singleton::pinstance = NULL;
}
}
};
static Garbo garbo;
};

#endif
/*************************************************************************
> File Name: Singleton.cpp
> Created Time: Sat 20 Jun 2015 03:08:16 PM CST
 ************************************************************************/
#include "Singleton.h"
#include <iostream>
using std::cout; using std::endl;

Singleton* Singleton::pinstance = NULL;

Singleton* Singleton::get_instance()
{
if( NULL == pinstance )
{
pinstance = new Singleton;
cout << "Singleton::get_instance() called." << endl;
}
return pinstance;
}

void Singleton::show() const
{
cout << "Singleton::show() called." << endl;
}
/*************************************************************************
> File Name: main.cpp
> Author: mz
> Mail:1282662879@qq.com 
> Created Time: Sat 20 Jun 2015 03:12:36 PM CST
 ************************************************************************/
#include "Singleton.h"
int main( void )
{
Singleton* p = Singleton::get_instance();
Singleton* q = Singleton::get_instance();
Singleton* r = Singleton::get_instance();

p->show();

return 0;
}



------解决思路----------------------
static Garbo garbo;//该成员也要在类外进行初始化

Singleton::Garbo Singleton::garbo;  //在Singleton.h里面加上这句应该就可以了