C++ 无法实现单例模式

C++ 无法实现单例模式,c++,visual-studio-2010,C++,Visual Studio 2010,请看一下下面的代码 UIHandler.cpp #include "UIHandler.h" #include <iostream> using namespace std; UIHandler::UIHandler() { } UIHandler::~UIHandler(void) { } UIHandler *UIHandler::getInstance() { if(uiHandler==NULL) { uiHandler = n

请看一下下面的代码

UIHandler.cpp

#include "UIHandler.h"
#include <iostream>

using namespace std;



UIHandler::UIHandler()
{

}


UIHandler::~UIHandler(void)
{
}

UIHandler *UIHandler::getInstance()
{
    if(uiHandler==NULL)
    {
        uiHandler = new UIHandler();
    }

    return uiHandler;
}
<>我是C++的新手,我正在尝试实现单模式。但是,这是一个错误!它说“
表达式必须是可修改的左值”
,位于
uiHandler=newuihandler()的位置

为什么会这样?请帮忙

UIHandler*UIHandler()
uiHandler
声明为方法,而不是数据成员。换成

static UIHandler *uiHandler;
static
之所以存在,是因为您正在通过
static
方法访问它

请注意,更好的方法是

UIHandler& UIHandler::getInstance()
{
    static UIHandler uiHandler;
    return uiHandler;
}
然后就把这个成员除掉

别忘了禁止复制。

UIHandler*UIHandler()
uiHandler
声明为方法,而不是数据成员。换成

static UIHandler *uiHandler;
static
之所以存在,是因为您正在通过
static
方法访问它

请注意,更好的方法是

UIHandler& UIHandler::getInstance()
{
    static UIHandler uiHandler;
    return uiHandler;
}
然后就把这个成员除掉

别忘了禁止复制