假设我们必须在应用程序的整个生命周期中使用一个类的单个对象。在BlackBerry 10中,是否可以声明一个全局对象,该对象可以在程序中的任何位置使用?
发布于 2013-01-23 10:27:09
您可以这样做,但更好的方法可能是使用设计为单例的类:
Singleton.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;
};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;
}在应用程序代码中
Singleton::instance().setMemberField(25);
Singleton::instance().getMemberField();这样做的真正好处是单例可以照看自己的全局指针。
https://stackoverflow.com/questions/14469039
复制相似问题