<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Verstehe den Fehler nicht]]></title><description><![CDATA[<p>Hey.</p>
<p>Besser ausgedrückt, ich verstehe nciht, warum dieser Fehler entsteht.</p>
<p>Das es sehr schwer ist alles zu erklären, und da ich mir zeihemlich sicher bin, dass es damit zutun hat wie ich meine headerdateien Include, stell ich einfach mal alle Dateien hier rein.</p>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;SDL.h&quot;
#include &quot;SDL_video.h&quot;

#include &quot;Core.h&quot;
#include &quot;TitleScreen.h&quot;

int SDL_main(int argc, char *argv[])
{
	Core Main;
	Main.Create(&quot;Test&quot;);
	Main.PushScreen(new TitleScreen);

	SDL_Event event;
	bool running = true;

	while(running)
	{
		if(SDL_PollEvent(&amp;event)) {
			switch(event.type) 
			{
				case SDL_USEREVENT:
					break;

				case SDL_WINDOWEVENT:
					break;

				case SDL_KEYDOWN:
					// Handle any key presses here.
					break;

				case SDL_MOUSEBUTTONDOWN:
					// Handle mouse clicks here.
					break;

				case SDL_QUIT:
					running = false;
					break ;

				default:
					break;
			}
		}else {
			SDL_Delay(100);
		}		
	}

	return 1;
}
</code></pre>
<p>core.h</p>
<pre><code class="language-cpp">#ifndef _CORE_H
#define _CORE_H

#include &quot;SDL_video.h&quot;
#include &quot;SDL.h&quot;
#include &lt;string&gt;

#include &quot;GameScreen.h&quot;

#if SDL_BYTEORDER == SDL_BIG_ENDIAN
    const Uint32 RMASK = 0xff000000;
    const Uint32 GMASK = 0x00ff0000;
    const Uint32 BMASK = 0x0000ff00;
    const Uint32 AMASK = 0x000000ff;
#else
    const Uint32 RMASK = 0x000000ff;
    const Uint32 GMASK = 0x0000ff00;
    const Uint32 BMASK = 0x00ff0000;
    const Uint32 AMASK = 0xff000000;
#endif

class Core
{
private:
	SDL_Window *pWindowID;
	SDL_Surface *pMainSurface;
	SDL_Surface *pBackBuffer;

public:
	//Konstruktor
	Core();
	//Dekonstruktor
	~Core();

	bool Create(std::string title, int x = SDL_WINDOWPOS_CENTERED, int y = SDL_WINDOWPOS_CENTERED, int w = 300, int h = 200);
	void PushScreen(GameScreen *screen);

};
#endif
</code></pre>
<p>core.cpp</p>
<pre><code class="language-cpp">#include &quot;Core.h&quot;

//Konstruktor
Core::Core()
{
	//Pointer Intitialisieren
	pWindowID = NULL;
	pMainSurface = NULL;
	pBackBuffer = NULL;
}

//Dekonstruktor
Core::~Core()
{

}

bool Core::Create(std::string title, int x, int y, int w, int h)
{
	pBackBuffer = SDL_CreateRGBSurface(SDL_HWSURFACE, w, h, 32, RMASK, GMASK, BMASK, AMASK);
	pWindowID = SDL_CreateWindow(title.c_str(), x, y, w, h, SDL_WINDOW_RESIZABLE);

	if(!(pMainSurface = SDL_GetWindowSurface(pWindowID)))
		return false;

	if(x != SDL_WINDOWPOS_CENTERED || y != SDL_WINDOWPOS_CENTERED)
		SDL_SetWindowPosition(pWindowID, x, y);	

	return true;
}

void Core::PushScreen(GameScreen *screen)
{
	//screen-&gt;initialize(this);
	screen-&gt;Start();
}
</code></pre>
<p>GameScreen.h</p>
<pre><code class="language-cpp">#ifndef _GAMESCREEN_H
#define _GAMESCREEN_H

#include &quot;Core.h&quot;

class GameScreen
{
private:
	Core core;

public:
	virtual void Render();
	virtual void Start();

	//void initialize(Core *core);
	//Core* GetCore();
};
#endif
</code></pre>
<p>GameScreen.cpp</p>
<pre><code class="language-cpp">#include &quot;GameScreen.h&quot;

// Virtual
void GameScreen::Render()
{

}

void GameScreen::Start()
{

}
/*
void GameScreen::initialize(Core *core)
{
	this-&gt;core = core;
}

Core* GameScreen::GetCore()
{
	return core;
}
*/
</code></pre>
<p>TitleScreen.h</p>
<pre><code class="language-cpp">#ifndef _TITLESCREEN_H
#define _TITLESCREEN_H

#include &lt;iostream&gt;

#include &quot;GameScreen.h&quot;

class TitleScreen : public GameScreen
{
public:
	virtual void Render();
	virtual void Start();

};
#endif
</code></pre>
<p>TitleScreen.cpp</p>
<pre><code class="language-cpp">#include &quot;TitleScreen.h&quot;

void TitleScreen::Render()
{
	//SDL_FillRect(
	std::cout &lt;&lt; &quot;render in Titlescreeen&quot; &lt;&lt; std::endl;
}

void TitleScreen::Start()
{
	Render();
}
</code></pre>
<p>Folgender Error schmeißt die Console aus:</p>
<pre><code>1&gt;  TitleScreen.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\core.h(36): error C2061: Syntaxfehler: Bezeichner 'GameScreen'
1&gt;  Main.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'core'
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;  GameScreen.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\core.h(36): error C2061: Syntaxfehler: Bezeichner 'GameScreen'
1&gt;  Core.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'core'
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;  Code wird generiert...
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
</code></pre>
<p>EDIT: es sei vllt noch erwähnt, dass wenn ich &quot;Core core;&quot; und #include &quot;Core.h&quot; auskommentiere funktioniert alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288713/verstehe-den-fehler-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 18:24:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288713.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jun 2011 14:41:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Tue, 21 Jun 2011 14:44:58 GMT]]></title><description><![CDATA[<p>Hey.</p>
<p>Besser ausgedrückt, ich verstehe nciht, warum dieser Fehler entsteht.</p>
<p>Das es sehr schwer ist alles zu erklären, und da ich mir zeihemlich sicher bin, dass es damit zutun hat wie ich meine headerdateien Include, stell ich einfach mal alle Dateien hier rein.</p>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;SDL.h&quot;
#include &quot;SDL_video.h&quot;

#include &quot;Core.h&quot;
#include &quot;TitleScreen.h&quot;

int SDL_main(int argc, char *argv[])
{
	Core Main;
	Main.Create(&quot;Test&quot;);
	Main.PushScreen(new TitleScreen);

	SDL_Event event;
	bool running = true;

	while(running)
	{
		if(SDL_PollEvent(&amp;event)) {
			switch(event.type) 
			{
				case SDL_USEREVENT:
					break;

				case SDL_WINDOWEVENT:
					break;

				case SDL_KEYDOWN:
					// Handle any key presses here.
					break;

				case SDL_MOUSEBUTTONDOWN:
					// Handle mouse clicks here.
					break;

				case SDL_QUIT:
					running = false;
					break ;

				default:
					break;
			}
		}else {
			SDL_Delay(100);
		}		
	}

	return 1;
}
</code></pre>
<p>core.h</p>
<pre><code class="language-cpp">#ifndef _CORE_H
#define _CORE_H

#include &quot;SDL_video.h&quot;
#include &quot;SDL.h&quot;
#include &lt;string&gt;

#include &quot;GameScreen.h&quot;

#if SDL_BYTEORDER == SDL_BIG_ENDIAN
    const Uint32 RMASK = 0xff000000;
    const Uint32 GMASK = 0x00ff0000;
    const Uint32 BMASK = 0x0000ff00;
    const Uint32 AMASK = 0x000000ff;
#else
    const Uint32 RMASK = 0x000000ff;
    const Uint32 GMASK = 0x0000ff00;
    const Uint32 BMASK = 0x00ff0000;
    const Uint32 AMASK = 0xff000000;
#endif

class Core
{
private:
	SDL_Window *pWindowID;
	SDL_Surface *pMainSurface;
	SDL_Surface *pBackBuffer;

public:
	//Konstruktor
	Core();
	//Dekonstruktor
	~Core();

	bool Create(std::string title, int x = SDL_WINDOWPOS_CENTERED, int y = SDL_WINDOWPOS_CENTERED, int w = 300, int h = 200);
	void PushScreen(GameScreen *screen);

};
#endif
</code></pre>
<p>core.cpp</p>
<pre><code class="language-cpp">#include &quot;Core.h&quot;

//Konstruktor
Core::Core()
{
	//Pointer Intitialisieren
	pWindowID = NULL;
	pMainSurface = NULL;
	pBackBuffer = NULL;
}

//Dekonstruktor
Core::~Core()
{

}

bool Core::Create(std::string title, int x, int y, int w, int h)
{
	pBackBuffer = SDL_CreateRGBSurface(SDL_HWSURFACE, w, h, 32, RMASK, GMASK, BMASK, AMASK);
	pWindowID = SDL_CreateWindow(title.c_str(), x, y, w, h, SDL_WINDOW_RESIZABLE);

	if(!(pMainSurface = SDL_GetWindowSurface(pWindowID)))
		return false;

	if(x != SDL_WINDOWPOS_CENTERED || y != SDL_WINDOWPOS_CENTERED)
		SDL_SetWindowPosition(pWindowID, x, y);	

	return true;
}

void Core::PushScreen(GameScreen *screen)
{
	//screen-&gt;initialize(this);
	screen-&gt;Start();
}
</code></pre>
<p>GameScreen.h</p>
<pre><code class="language-cpp">#ifndef _GAMESCREEN_H
#define _GAMESCREEN_H

#include &quot;Core.h&quot;

class GameScreen
{
private:
	Core core;

public:
	virtual void Render();
	virtual void Start();

	//void initialize(Core *core);
	//Core* GetCore();
};
#endif
</code></pre>
<p>GameScreen.cpp</p>
<pre><code class="language-cpp">#include &quot;GameScreen.h&quot;

// Virtual
void GameScreen::Render()
{

}

void GameScreen::Start()
{

}
/*
void GameScreen::initialize(Core *core)
{
	this-&gt;core = core;
}

Core* GameScreen::GetCore()
{
	return core;
}
*/
</code></pre>
<p>TitleScreen.h</p>
<pre><code class="language-cpp">#ifndef _TITLESCREEN_H
#define _TITLESCREEN_H

#include &lt;iostream&gt;

#include &quot;GameScreen.h&quot;

class TitleScreen : public GameScreen
{
public:
	virtual void Render();
	virtual void Start();

};
#endif
</code></pre>
<p>TitleScreen.cpp</p>
<pre><code class="language-cpp">#include &quot;TitleScreen.h&quot;

void TitleScreen::Render()
{
	//SDL_FillRect(
	std::cout &lt;&lt; &quot;render in Titlescreeen&quot; &lt;&lt; std::endl;
}

void TitleScreen::Start()
{
	Render();
}
</code></pre>
<p>Folgender Error schmeißt die Console aus:</p>
<pre><code>1&gt;  TitleScreen.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\core.h(36): error C2061: Syntaxfehler: Bezeichner 'GameScreen'
1&gt;  Main.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'core'
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;  GameScreen.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\core.h(36): error C2061: Syntaxfehler: Bezeichner 'GameScreen'
1&gt;  Core.cpp
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'core'
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;c:\users\matze\documents\visual studio 2010\projects\mygametest\mygametest\gamescreen.h(9): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: &quot;default-int&quot; wird von C++ nicht unterstützt.
1&gt;  Code wird generiert...
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
</code></pre>
<p>EDIT: es sei vllt noch erwähnt, dass wenn ich &quot;Core core;&quot; und #include &quot;Core.h&quot; auskommentiere funktioniert alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081699</guid><dc:creator><![CDATA[Darter]]></dc:creator><pubDate>Tue, 21 Jun 2011 14:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Tue, 21 Jun 2011 14:46:45 GMT]]></title><description><![CDATA[<p>core.h und sollen sich gegenseitig inkludieren. Preisfrage: wer darf als erstes? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Such mal nach &quot;Forward Declaration&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081701</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 21 Jun 2011 14:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Tue, 21 Jun 2011 15:08:32 GMT]]></title><description><![CDATA[<p>Hey.</p>
<p>Dass sich Core und GameScreen gegenseitig includieren, ist mir natürlich auf aufgefallen, und ich war mir auch schon ziehmlich sicher, dass dort das Problem ist, leider wusste ich bis jetzt keine lösung dafür.</p>
<p>Aber jetzt geht es, ich danke dir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>mfg Darter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081720</guid><dc:creator><![CDATA[Darter]]></dc:creator><pubDate>Tue, 21 Jun 2011 15:08:32 GMT</pubDate></item></channel></rss>