I usually implement the singleton pattern this way :
class Singleton { public: virtual ~Singleton() {} static Singleton& GetInstance
The second implementation is wrong. The default constructor should be private. As it is, it is not a singleton per se. Besides that, the differences between the implementations are mentioned in @Andrew and @Brady answers.