这是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()
方法。
我知道我在做一些愚蠢的事,但无法理解。你能帮帮我吗?
答案 0 :(得分:2)
您显然是通过指针访问该类,而pointer's
位置的内存的值为0xaaaaaaaa
。这看起来很像未初始化的内存所具有的值。
所以我猜你有一个Score *
变量,你没有填写什么。你需要做一个
Score
,并使用直接成员访问(.
)而不是指针间接(->
)var = new Score();
初始化变量,然后将其与free var;
答案 1 :(得分:1)
这是因为您尝试SetScore()的Score
对象已经过时,已经过时。注意它的寿命。