2016-08-03 14 views
0

Ich versuche nur, einen kleinen Prototyp in C++ und Codeblocks zu bekommen, aber ich weiß nicht warum, jede Methode und Parameter würde erscheinen als nicht im Geltungsbereich deklariert. Dies ist mein Code so weit:Codeblocks C++ Klassenparameter erscheinen als nicht deklariert im Bereich

Main.cpp:

#include <iostream> 
#include "Constantes.h" 
#include "Game.h" 


int main(int argc, char* argv[]) 
{ 
    std::cout <<"Incializando "<<TITULO<<" en "<<ALTO<<"x"<<ANCHO<<" a "<<FPS<<" FPS"<<"..."<< std::endl; 
    Game juego; 
    std::cout << "Finalizando Juego..." << std::endl; 
    return 0; 
} 

Game.h:

#include "../Constantes.h" 
#include <SDL2/SDL.h> 

class Game 
{ 
    public: 
     Game(); 
     virtual ~Game(); 

    protected: 

    private: 
     void Init(); 
     void Bucle(); 
     void Exit(); 

     bool gameOver; 
     SDL_Window * ventana; 
     SDL_Renderer * render; 

}; 

Game.cpp:

#include "Game.h" 

Game::Game() 
{ 
    Init(); 
} 

Game::~Game() 
{ 
    //dtor 
} 

void Game::Init() 
{ 
    gameOver = false; 
    SDL_Init(SDL_INIT_EVERYTHING); 
    ventana = SDL_CreateWindow(TITULO,SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,ANCHO,ALTO,SDL_WINDOW_SHOWN); 
    SDL_CreateRenderer(ventana,0,SDL_RENDERER_ACCELERATED); 
} 

void Game::Bucle() 
{ 
    while(!gameOver) 
    { 
     SDL_RenderClear(); 
    } 
} 

Constantes.h:

#define ALTO 640 
#define ANCHO 480 
#define FPS 60 
#define TITULO "V0.01" 

Und das ist meine Fehlerliste:

||=== Build: Debug in Gameu (compiler: GNU GCC Compiler) ===| 
C:\Users\SIMU\Desktop\ppm\Gameu\Gameu\src\Game.cpp||In constructor 'Game::Game()':| 
C:\Users\SIMU\Desktop\ppm\Gameu\Gameu\src\Game.cpp|5|error: 'gameOver' was not declared in this scope| 
C:\Users\SIMU\Desktop\ppm\Gameu\Gameu\src\Game.cpp||In member function 'void Game::Init()':| 
C:\Users\SIMU\Desktop\ppm\Gameu\Gameu\src\Game.cpp|16|error: 'gameOver' was not declared in this scope| 
C:\Users\SIMU\Desktop\ppm\Gameu\Gameu\src\Game.cpp|22|error: no 'void Game::Bucle()' member function declared in class 'Game'| 
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 

i gameover so ziemlich erklärt im privaten Abschnitt der Klasse Spiel sehen können. Ich weiß nicht, was falsch ist.

+0

Wird Ihr Header wirklich Game.H genannt und nicht Game.h? Und arbeitest du an Linux? –

+0

Sorry, ist "Game.h", krank mein Fehler zu bearbeiten. Ich arbeite unter Windows 7 Ultimate x64 – Azokasion

+0

Kann nicht reproduzieren nach dem Entfernen der Sachen, die nicht kompilieren können (und Sie nicht Fehler melden) und die SDL-Sachen (die ich nicht habe). Empfehle das Hinzufügen von [include guards] (https://en.wikipedia.org/wiki/Include_guard) zu deinen Header-Dateien. – user4581301

Antwort

0

Sie schließen Constantes.h in Game.cpp nicht ein.

Nun, Sie versuchen zumindest. In weiß nicht, warum Sie #include "../Constantes.h" in Ihrem Game.h haben, wenn Sie nur #include "Constantes.h" benötigen würden. Versuchen Sie eine andere Datei aus einigen Ordnern zu erhalten?

+0

Der Grund für diese "../Constantes.h" ist, weil meine Codeblock-Hierarchie so aussieht. http://imgur.com/QE0NVB3. Wenn ich also "Constantes.h" einbeziehe, können die Codeblocks es nicht finden. – Azokasion

+0

Sie müssen noch schreiben '#include" ../ Headers/Constantes.h "' obwohl, richtig? – ProgramGamer

+0

Nein. Weil ich verstehe, Codeblocks sucht nach Kopfzeilen im "include" Ordner dieser Struktur. EDIT: Leider falsche Verbindung. http://imgur.com/Jf8VR0H – Azokasion

0

Ich konnte das Problem nicht beheben, aber ich kam mit einer Lösung. Ich weiß nicht, warum es generiert wurde, aber ich löschte die Game.cpp und Game.h und erstellt die Klasse erneut (erstellt neue), Kopieren Sie den Code und seine Arbeit. ¯_ (ツ) _/¯