我遇到了一个有趣的问题。我发现我的程序在标准的get语句上崩溃了。对于上下文,我重写了onEnter
函数(来自Cocos2dx框架)以在另一个场景中进行修改后交换图像。
我的修改如下:
图标是map< ClassA, CCSprite* >
current
是ClassA
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/