这应该是特定于 C++ 的。
我在头文件中有一个属性m9ReloadAnim,我可以从构造函数访问它,但是当我尝试从其他函数访问它时,我得到一个错误,如:EXC_BAD_ACCESS 或类似的东西: “该地址不包含对象”。
我有一个像这样的头类:
#ifndef __SWAT__Weapon__
#define __SWAT__Weapon__
#include "cocos2d.h"
class Weapon : public cocos2d::CCSprite
{
private:
cocos2d::CCAnimation *m9ReloadAnim = cocos2d::CCAnimation::create();
public:
Weapon();
~Weapon();
void reloadM9();
};
#endif
像这样的 cpp 文件:
enter code here
#include "Weapon.h"
#include "cocos2d.h"
Weapon::Weapon(){
m9ReloadAnim->setDelayPerUnit(1.1f);
}
Weapon::~Weapon(){
}
void Weapon::reloadM9(){
m9ReloadAnim->setDelayPerUnit(1.1f);
}
最佳答案
你不能像这样初始化变量:
cocos2d::CCAnimation *m9ReloadAnim = cocos2d::CCAnimation::create();
只有 static const int
可以在类声明中被初始化。
将此 init 移至您的 ctor:
Weapon::Weapon()
: m9ReloadAnim(cocos2d::CCAnimation::create())
{
m9ReloadAnim->setDelayPerUnit(1.1f);
}
或
Weapon::Weapon()
{
m9ReloadAnim = cocos2d::CCAnimation::create();
m9ReloadAnim->setDelayPerUnit(1.1f);
}
关于c++ - 无法访问属性 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15705274/