だから、私は自分のコードをコンパイルしようとしていますが、コンパイラは「'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);
}
私はそれについて1時間以上考えてきましたが、なぜそれがこれを行うのかまだ理解できません。ちなみに、私はBloodshed Dev C ++を使用していますが、助けていただければ幸いです。