假设我们必须在应用程序的整个生命周期中使用一个类的单个对象。在 BlackBerry 10 中,是否可以声明一个全局对象,它可以在程序内部的任何位置使用?
问问题
305 次
1 回答
1
您可以这样做,但更好的方法可能是使用设计为单例的类:
单例.hpp
class Singleton {
private:
Singleton();
public:
virtual ~Singleton();
static Singleton &instance();
int getMemberField() { return m_memberField; }
void setMemberField(int mf) { m_memberField = mf; }
private:
static Singleton *p_instance;
int m_memberField;
};
单例.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;
}
在应用程序代码中
Singleton::instance().setMemberField(25);
Singleton::instance().getMemberField();
这样做的真正好处是单例会照顾自己的全局指针。
于 2013-01-23T02:27:09.183 回答