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.
Wird Ihr Header wirklich Game.H genannt und nicht Game.h? Und arbeitest du an Linux? –
Sorry, ist "Game.h", krank mein Fehler zu bearbeiten. Ich arbeite unter Windows 7 Ultimate x64 – Azokasion
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