我遇到了一个有趣的问题。我发现我的程序在标准的get语句上崩溃了。对于上下文,我重写了onEnter函数(来自Cocos2dx框架)以在另一个场景中进行修改后交换图像。

我的修改如下:

图标是map< ClassA, CCSprite* >currentClassA

void onEnter(){
    <parent class>::onEnter();
    CCSprite* sprite = icons[current];
    if (sprite){
        CCNode* parent = sprite->getParent(); //Crashes Here
        if (parent){...}
    }
}

从Cocos2d-x:
CCNode* getParent(){
    return m_pParent;
}

注意:除了在这里以外,在其他任何地方调用此函数都没有问题。

也:
  • 是,图标存在
  • 是,当前存在
  • 是,精灵存在
  • 当前不是指针

  • 如果有帮助,我正在使用QNX Momentics IDE。

    编辑::这是一张图片

    最佳答案

    看来它不是有效的CCSprite。在声明和调用onEnter之间,cocos2dx使用的发布池将其标记为删除。似乎在某些情况下,在构造函数期间,CCSprite没有添加到父对象,也没有标记为保留。因此,它被删除了,但是仍然有一些垃圾。谢谢Cyber

    关于c++ - C++的get语句崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25270603/

    10-12 20:39