首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个单例类BlackBerry 10

如何创建一个单例类BlackBerry 10
EN

Stack Overflow用户
提问于 2013-01-23 06:13:30
回答 1查看 305关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 10:27:09

您可以这样做,但更好的方法可能是使用设计为单例的类:

Singleton.hpp

代码语言:javascript
复制
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

代码语言:javascript
复制
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;
}

在应用程序代码中

代码语言:javascript
复制
Singleton::instance().setMemberField(25);
Singleton::instance().getMemberField();

这样做的真正好处是单例可以照看自己的全局指针。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14469039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档