[Creative Mode] Understanding of Singleton Mode



head File
//SingletonPattern.h

#ifndef SINGLETON_PATTERN_H
#define SINGLETON_PATTERN_H

#include <Windows.h>
#include <string>
using namespace std;

namespace SingletonPattern
{
    // Base Class
    //////////////////////////////////////////////////////////////////////////
    class Singleton
    {
    public:
        static Singleton* GetInstance()
        {
            static Singleton cSingleton;

            return &cSingleton;
        }

    private:
        Singleton();
        virtual ~Singleton();
    };

    //////////////////////////////////////////////////////////////////////////
    void SingletonPattern_Test_A();
    void SingletonPattern_Test_B();

}

#endif

accomplish
#include "SingletonPattern.h"
#include <iostream>
using namespace std;

namespace SingletonPattern
{

    //////////////////////////////////////////////////////////////////////////
    Singleton::Singleton()
    {
    }
    Singleton::~Singleton()
    {
    }

    //////////////////////////////////////////////////////////////////////////
    void SingletonPattern_Test_A()
    {
        Singleton* pInstance = Singleton::GetInstance();

        cout << "SingletonPattern_Test_A    Instance address:0x" << pInstance << endl;
    }

    void SingletonPattern_Test_B()
    {
        Singleton* pInstance = Singleton::GetInstance();

        cout << "SingletonPattern_Test_B    Instance address:0x" << pInstance << endl;
    }
}

client
#include "SingletonPattern.h"

#include <iostream>
using namespace std;
using namespace SingletonPattern;

void main()
{
    SingletonPattern_Test_A();
    SingletonPattern_Test_B();
}

operation result

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326936631&siteId=291194637