0

假设我们必须在应用程序的整个生命周期中使用一个类的单个对象。在 BlackBerry 10 中,是否可以声明一个全局对象,它可以在程序内部的任何位置使用?

4

1 回答 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 回答