#include <stdio.h> /* printf */ class Singletest { public: static Singletest* getinstace(); ~Singletest(); private: Singletest(); static Singletest* instance; }; Singletest* Singletest::instance = NULL; Singletest* Singletest::getinstace() { if (instance == NULL) { instance = new Singletest(); printf("instance = %x\n",instance); printf("222222222222222222222222 \n"); } return instance; } Singletest::Singletest() { printf("11111111111111111111111 \n"); } Singletest::~Singletest() { instance = NULL; printf("3333333333333333333333333 \n"); } int main () { Singletest* test1 = Singletest::getinstace(); Singletest* test2 = Singletest::getinstace(); printf("test1 = %x,test2 = %x\n",test1,test2); if (Singletest::getinstace()) { delete Singletest::getinstace(); } Singletest* test3 = Singletest::getinstace(); if (Singletest::getinstace()) { delete Singletest::getinstace(); } printf("test3 = %x",test3); test2 = NULL; test1 = NULL; test3 = NULL; return 0; }