单例模式 GetInstance()

如何设计一个含GetInstance()函数的类

直接上代码:

头文件(MyClass.h):

class CMyClass
{
public:
    CMyClass(void);
    ~CMyClass(void);
public:
    static CMyClass* GetInstance();
private:
    static CMyClass* m_pMyClass;
};

CPP文件(MyClass.cpp):

#include "MyClass.h"

CMyClass* CMyClass::m_pMyClass = NULL;
CMyClass::CMyClass(void)
{
}

CMyClass::~CMyClass(void)
{
    if (NULL != m_pMyClass)
    {
        delete m_pMyClass;
        m_pMyClass = NULL;
    }
}

CMyClass* CMyClass::GetInstance()
{
    if (NULL == m_pMyClass)
    {
        m_pMyClass = new CMyClass();
    }
    return m_pMyClass;
}

为什么需要GetIntance(),与new方法的区别?

答案参考:http://blog.csdn.net/yong199105140/article/details/8425781

原文地址:https://www.cnblogs.com/whl2012/p/4830885.html