0

我在 Bada 中遇到了一些静态指针和变量的问题。首先,我尝试创建单例类并做了这样的事情: 标题:

    static Session *getInstanceOf();
private:
    static Session *instance;

资源:

Session* Session::getInstanceOf(){
    if (instance==NULL){
        instance=new Session();}
    return instance;
}

但是应用程序崩溃了,没有任何错误消息。然后我尝试创建静态类字段并通过以下方式返回它:

ArrayList* User::GetUniv()
{
    return &Universities;
}

但它有同样的结果。你知道为什么会这样吗?谢谢你的帮助。

4

3 回答 3

1

你可以这样做

ArrayList* User::GetUniv()
{
    static Universities;
    return &Universities;
}
于 2012-04-25T15:34:10.663 回答
1

Session::instance在你的实现文件中初始化吗?像这样:

Session* Session::instance = NULL;

编辑:还要考虑static初始化顺序 fiasco

于 2012-04-25T15:30:17.257 回答
0

这有点危险:

if (instance==NULL){
    instance=new Session();}

因为您的实例似乎没有被初始化为 NULL。未初始化时,指针可能具有垃圾值。

于 2012-04-25T15:32:59.170 回答