指针有问题

Having an issue with pointers

本文关键字:有问题 指针      更新时间:2023-10-16

嗨,我开始用 c++ 编程的时间不长,但有几年其他语言的经验。目前,我正在开发一款基本游戏,玩家将在最终幻想风格的游戏中与他们的怪物对抗AI怪物。

冠军类继承自 AbstractMonster 类,我希望玩家能够从选择中选择他们的起始怪物。但是目前我只有一个编程,好像我可以让它工作,我应该能够得到其余的

我遇到的问题是指向玩家怪物的指针,因为它不断弹出一个。 访问冲突写入位置0x00000000。

这是我目前使用的头文件的唯一部分

#include "AbstractMonster.h"
#include "Champion.h"
class mainGame{
public:
    void createMonster()
private:    
    AbstractMonster* playerMonster = nullptr;
}

.cpp文件中的功能如下

void mainGame::createMonster(){    
    playerMonster = new Champion(); //this is the line the errors at and it highlights playerMonster  
}

任何帮助将不胜感激,因为我已经遇到了这个问题几天了。

Access violation writing location 0x00000000. 告诉我您正在访问从未分配给new对象的指针。 我会检查您使用 playerMonster 的位置并确保它是有效的。 一个好的检查方法是当你用拳头声明玩家怪物将其设置为等于nullptr

AbstractMonster* playerMonster = nullptr;

然后在您使用它的地方运行检查以查看它是否仍然为空if (plasyerMonster == nullptr)