0

这是我当前在Score.h文件中的分数类代码:-

class Score
{

protected:
long m_Scores;
long m_HighScore;
//private:

public:
Score();
~Score();
void Init();
void Update(float deltaMS);
void Render();
void Release();
void SetScore(long sc){
    m_Scores=sc;
}

long GetScore(){
    return m_Scores;
}
void SetHighScore(long sc){
    m_HighScore=sc;
}

long GetHighScore(){
    return m_HighScore;
}
void AddScore(int add);

};

每当我尝试在类本身中访问 m_Scores 时,都会出现以下错误。

Access violation writing location 0xaaaaaaaa.

由于这个原因,该SetScore()方法无法运行。我知道我在做一些愚蠢的事情,但无法弄清楚。你能帮帮我吗?

4

2 回答 2

2

您显然是通过指针访问该类,并且该pointer's位置的内存具有 value 0xaaaaaaaa。这看起来很像未初始化内存的值。

所以我猜你有一个Score *变量,你没有填写一些东西。您需要执行以下操作之一

  • 将其更改为Score, 并使用直接成员访问 ( .) 而不是指针间接 ( ->)
  • 初始化变量,var = new Score();然后释放它free var;
于 2012-05-17T10:18:27.950 回答
1

发生这种情况是因为您Score尝试 SetScore() 的对象已经过时,已被破坏。注意它的寿命。

于 2012-05-17T10:02:39.630 回答