c++ - 无法访问属性 C++

标签 c++ ios pointers cocos2d-x

这应该是特定于 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/

相关文章:

C++20 协程 : implementing an awaitable future

c++ - QTcpSocket 为什么接收到错误的数据?

java - null 指向任何内容是什么意思,为什么要使用 null?

ios - 如何从 XCode 5 项目中删除 GIT 版本控制

iphone - iPad\iPhone应用结构

c - 指向作为参数的函数的指针,使用 typedef

对象属性与指针之间的转换作为函数参数

c++ - 编译器将随机字符添加到我的 char 数组

c++ - 打印存储在 C 字符串中的字符的 ASCII 代码 - 需要解释

ios - 如何在 ios swift 中安排周一、周二和周五下午 5 点的本地通知?