2016-07-28 7 views
0

Ich versuche, die Klasse "Grafik" zu deklarieren, aber in graphics.cpp bekomme ich den Fehler.C++ Eine Klasse in separaten .cpp und .h Dateien erstellen

'Grafik' ist kein Klassen- oder Namensraumname.

es sagt der Ort des Fehlers

Grafiken ist :: Grafik()

ich Visual Studio 2010 benutzen und in meinem Code werden Grafiken als Klasse hervorgehoben .. aber es wird anscheinend nicht als eine Klasse von graphics.cpp betrachtet? Weiß jemand, was das Problem hier ist?

Hier ist mein Code

//graphics.h 
#ifndef GRAPHICS_H 
#define GRAPHICS_H 

struct SDL_Window; 
struct SDL_Renderer; 

class graphics 
{ 
public: 
    graphics(); 
    ~graphics(); 
private: 
    SDL_Window* _window; 
    SDL_Renderer* _renderer; 
}; 

#endif 

und dann

//graphics.cpp 
#include "graphics.h" 
#include "stdafx.h" 

graphics::graphics() {} 
graphics::~graphics() {} 
+0

Hmm, 'graphics :: graphics()' sollte gut funktionieren, es sei denn, du verpasst etwas nicht woanders, das du nicht zeigst. –

+1

Ich kann Ihren Fehler nicht reproduzieren, aber dann benutze ich nicht VS oder SDL. Versuchen Sie, so viel Code wie möglich aus Ihrem Beispiel zu entfernen, während Sie den Fehler reproduzieren. Wenn das Problem weiterhin nicht offensichtlich ist, veröffentlichen Sie ein [minimales vollständiges Beispiel] (http://stackoverflow.com/help/mcve). . – Beta

+1

Wenn Sie '#ifdef GRAPHICS_H'' #error test' '# endif' vor' #include "graphics.h" 'setzen, erhalten Sie eine Fehlermeldung" test "? – immibis

Antwort

3

Wenn Sie vorkompilierte Header

#include "SDL.h" 
#include "graphics.h" 
#include "stdafx.h" <<<<< must always be included before anything else 

Wechsel zu

#include "stdafx.h" 
#include "SDL.h" 
#include "graphics.h" 
verwenden

Der Compiler sollte diesen Fehler zusammen mit dem angegebenen Fehler ausgeben.

Verwandte Themen