<?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[Klassen]]></title><description><![CDATA[<p>Ich komm einfach nicht drauf was ich falsch mache.</p>
<p>Ich hab 3 Klassen, <strong>Person</strong>, Spieler/<strong>Player</strong> die von Person erbt und Spiel/<strong>Game</strong> die eine Instanz von Player enthält. Mal ein bischen Code um es zu veranschaulichen.</p>
<p>Person.h:</p>
<pre><code class="language-cpp">#pragma once
//[...]
class Person
{
protected:
	ENTITY *Ent;

	int healthy;
	char *Name;

public:
	Person(char *Name, char *FileName, VECTOR *position);
	Person(char *Name, char *FileName, VECTOR *position, EVENT event);
	~Person(void);

        //[...]
};
</code></pre>
<p>Player.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;Person.h&quot;
#include &quot;Game.h&quot;
//[...]
class Player :
	public Person
{
public:
	Player(char *Name, char *FileName, VECTOR *position);
	~Player(void);

protected:
	void setEvent();
	static void Event()
	{
		//Event Hit
		if([...])
		{
            //C2039: 'Schueler' kein Element von 'Game'
			Game::Schueler-&gt;Hit(5);
		}
	}
};
</code></pre>
<p>Game.h</p>
<pre><code class="language-cpp">#pragma once
#include &quot;Player.h&quot;
//[...]

class Game
{
protected:
	static bool Running;
public:
        //C2143: Synatax Fehler es fehlt ';' vor '*'
        //-&gt;'default-int' Fehler
	static Player *Schueler;
//[...]
};
</code></pre>
<p>Irgendjemand ne Idee woher die Fehler kommen?<br />
Danke im Voraus SWW13.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239536/klassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 12:20:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239536.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Apr 2009 16:27:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 16:27:48 GMT]]></title><description><![CDATA[<p>Ich komm einfach nicht drauf was ich falsch mache.</p>
<p>Ich hab 3 Klassen, <strong>Person</strong>, Spieler/<strong>Player</strong> die von Person erbt und Spiel/<strong>Game</strong> die eine Instanz von Player enthält. Mal ein bischen Code um es zu veranschaulichen.</p>
<p>Person.h:</p>
<pre><code class="language-cpp">#pragma once
//[...]
class Person
{
protected:
	ENTITY *Ent;

	int healthy;
	char *Name;

public:
	Person(char *Name, char *FileName, VECTOR *position);
	Person(char *Name, char *FileName, VECTOR *position, EVENT event);
	~Person(void);

        //[...]
};
</code></pre>
<p>Player.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;Person.h&quot;
#include &quot;Game.h&quot;
//[...]
class Player :
	public Person
{
public:
	Player(char *Name, char *FileName, VECTOR *position);
	~Player(void);

protected:
	void setEvent();
	static void Event()
	{
		//Event Hit
		if([...])
		{
            //C2039: 'Schueler' kein Element von 'Game'
			Game::Schueler-&gt;Hit(5);
		}
	}
};
</code></pre>
<p>Game.h</p>
<pre><code class="language-cpp">#pragma once
#include &quot;Player.h&quot;
//[...]

class Game
{
protected:
	static bool Running;
public:
        //C2143: Synatax Fehler es fehlt ';' vor '*'
        //-&gt;'default-int' Fehler
	static Player *Schueler;
//[...]
};
</code></pre>
<p>Irgendjemand ne Idee woher die Fehler kommen?<br />
Danke im Voraus SWW13.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700813</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Fri, 24 Apr 2009 16:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 16:32:15 GMT]]></title><description><![CDATA[<p>naja - du hast ne kreisabhängigkeit drin...<br />
versuch ma ds in der game.h zu schreiben:</p>
<pre><code class="language-cpp">#pragma once 

//#include &quot;Player.h&quot; brauchst du nicht mehr, wir nehmen ne forward deklaration

class Game 
{ 
protected: 
    static bool Running; 
public: 

    static class Player *Schueler; //die forward-deklaration kann man auch einzeln machen, aber ich finds so schöner ^^
};
</code></pre>
<p>noch mal zur erklärung, warum deins net ging:<br />
player.h included game.h, die will wiederrum wieder die player.h includen - der compiler bricht den ring auf und schon compiliert er eins von beiden, ohne das andere zu kennen... so was sollte man vermeiden - udn wenn mans net vermeiden kann, muss man eben gucken, dass ne forward-deklaration reicht...<br />
wobei es hier au scho reichen würde, die implementationen in die *.cpp zu verschieben und demzufolge dort auch erst game.h zu includen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700816</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 24 Apr 2009 16:32:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 16:41:44 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort das ganze tut soweit, bloß mekert er jetzt an einer Methode von Game rum, die den Konstruktor von Player aufruft:</p>
<pre><code class="language-cpp">void Game::createPlayer()
{
    //C2514: 'Player': Klasse besitzt keine Konstruktoren
	Schueler = new Player([...]);
}
</code></pre>
<p>Das selbe beim Aufruf einer anderen Methode von Player, ich hab schon versucht ein 'class' anzufügen, ohne Erfolg. Gibt es beim Methoden/Konstruktor Aufruf nen extra Schlüßelwort für forward-deklaration?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700824</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Fri, 24 Apr 2009 16:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 17:29:14 GMT]]></title><description><![CDATA[<p>In der <code>Game.cpp</code> musst du natürlich <code>Player.h</code> inkludieren. Such mal nach &quot;Forward Declaration&quot;, damit duch auch verstehst, was hier gemacht wird. Bin grad zu faul, dazu eine Erklärung abzugeben <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700855</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 24 Apr 2009 17:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 17:51:42 GMT]]></title><description><![CDATA[<p>Danke an euch, das inkludieren der &quot;Player.h&quot; wirkt Wunder. Forward Declaration war genau was ich gebraucht hab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700860</guid><dc:creator><![CDATA[SWW13]]></dc:creator><pubDate>Fri, 24 Apr 2009 17:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen on Fri, 24 Apr 2009 18:05:43 GMT]]></title><description><![CDATA[<p>SWW13 schrieb:</p>
<blockquote>
<p>Danke an euch, das inkludieren der &quot;Player.h&quot; wirkt Wunder. Forward Declaration war genau was ich gebraucht hab.</p>
</blockquote>
<p>genau deshalb hab ichs ja geschrieben : &gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700868</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 24 Apr 2009 18:05:43 GMT</pubDate></item></channel></rss>