C++ 在blackberry 10中访问单例类方法
我实现了单例类方法hpp和cpp,如下所示 辛格尔顿水电站C++ 在blackberry 10中访问单例类方法,c++,singleton,blackberry-10,blackberry-cascades,C++,Singleton,Blackberry 10,Blackberry Cascades,我实现了单例类方法hpp和cpp,如下所示 辛格尔顿水电站 class Singleton { private: Singleton(); public: virtual ~Singleton(); static Singleton &instance(); int getMemberField(); void setMemberField(int mf); private: static Singleton *p_in
class Singleton {
private:
Singleton();
public:
virtual ~Singleton();
static Singleton &instance();
int getMemberField();
void setMemberField(int mf);
private:
static Singleton *p_instance;
int m_memberField;
};
Singleton.cpp
Singleton* Singleton::p_instance=NULL ;
Singleton::Singleton() {
p_instance = this;
m_memberField = 0;
}
Singleton::~Singleton() {
p_instance = NULL;
}
Singleton& Singleton::instance() {
if (p_instance==NULL) {
p_instance = new Singleton();
}
return *p_instance;
}
int Singleton::getMemberField(){
return m_memberField;
}
void Singleton::setMemberField(int mf){
m_memberField = mf;
}
我的问题是如何访问应用程序类中的set或get方法。
请帮助,
p\u instance=this代码>不需要此行,因为您需要p_instance=new Singleton()在instance()
中,让我们假设您这样做是为了获取实例“Singleton*s=Singleton::instance(),然后您可以像s->set()和s->get()那样调用它您能更具体地说明您遇到的问题吗?@Saran san:注意,他的单身汉返回的是一个singleton
,而不是singleton*
@kernald:您是对的!!抱歉,错过了:)
Singleton::instance().setMemberField(42);