无法实现单一实例模式
Unable to implement Singleton Pattern
请看下面的代码
汉德勒.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;
}
UIHandler.h
#pragma once
class UIHandler
{
public:
~UIHandler(void);
static UIHandler *getInstance();
private:
UIHandler *uiHandler();
UIHandler();
};
我是C++新手,我正在尝试在这里实现单例模式。但是,这个错误!它说"expression must be a modifiable lvalue
",在uiHandler = new UIHandler();
的地方
这是为什么呢?请帮忙!
UIHandler *uiHandler();
将uiHandler
声明为方法,而不是数据成员。将其更改为
static UIHandler *uiHandler;
static
之所以存在,是因为您是从static
方法访问它的。
请注意,更好的方法是
UIHandler& UIHandler::getInstance()
{
static UIHandler uiHandler;
return uiHandler;
}
然后摆脱会员。
不要忘记禁止复制。
相关文章:
- 从C++实例化QML
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- CRTP 模式不会触发完整的模板实例化
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- 如何实例化基于输入的策略模式
- 实现单一实例模式
- 如何改进利用单一实例模式的邮件系统
- 当周围有线程时,创建类的许多实例会失败吗?- 单例模式
- 是否为每个模板实例化生成唯一的类型或id?(观察者模式示例)
- 在什么情况下,单例设计模式可能会生成同一单例类的多个实例
- 用于处理实例"数据库"的模式
- 模板实例化的抽象基类的子类的构造函数-需要替代设计模式
- c++中的工厂模式.实例化问题
- 使用MSXML 6.0向SAXXMLReader60实例添加模式集合
- 如何实例化模式对象
- 使用工厂模式实例化所有小部件是明智的吗?
- 无法实现单一实例模式
- 设计模式- c++运行时成员参数的实例化