C++ 无法实现单例模式
请看一下下面的代码 UIHandler.cppC++ 无法实现单例模式,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
#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;
}
然后就把这个成员除掉
别忘了禁止复制