所以,我正在尝试编译我的代码,但编译器一直抱怨“'mysnake'未声明(首先使用此函数)”,但我声明了它。这是我的 Main.cpp,它已被声明。
#include "Class.h"
#include "Snake.h"
int main(int argc, char* args[]){
Prog run;
if((run.Init())==false){
return(1);
}
Snake mysnake;
if(run.LoadFiles()==false){
return(1);
}
run.MainLoop();
if(run.Draw()==false){
return(1);
}
run.CleanUp();
return(0);
}
这是使编译器抱怨的文件(AFAIK,它是第一个引用“mysnake”的文件被编译)
#include "Class.h"
#include<sstream>
#include "Snake.h"
bool Prog::Draw(){
std::stringstream message;
SDL_Rect position;
SDL_BlitSurface(image, NULL, screen, NULL);
int s=mysnake.EndSnake();
message<<"Your snake was "<<s<<" blocks long.";
msg=TTF_RenderText_Solid(font, message.str().c_str(), font_color);
if(msg==NULL){
return(false);
}
position.x=(WWIDTH-msg->w)/2;
position.y=(WHEIGHT-msg->h)/2;
SDL_BlitSurface(msg, NULL, screen, &position);
SDL_Flip(screen);
return(true);
}
我已经考虑了一个多小时,但我仍然无法理解为什么会这样。顺便说一句,我正在使用 Bloodshed Dev C++,非常感谢您的帮助。