<?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[Basisklasse undefiniert]]></title><description><![CDATA[<p>Hallo,<br />
ich habe schon ziemlich lange gesucht, doch keine Antwort gefunden, die mir geholfen hat. Aber ich habe hier einen Fehler, der nicht da sein sollte:</p>
<blockquote>
<p>error C2504: 'npc_base': Basisklasse undefiniert</p>
</blockquote>
<p>Hier mal die Dateien, bis aufs wichtigste gekürzt:</p>
<p>Basisklasse (npc.h):</p>
<pre><code>#ifndef NPC_H
#define NPC_H

#include &lt;SFML\Graphics.hpp&gt;
#include &quot;core\include\game.h&quot;
#include &quot;manager\include\Resource.h&quot;
#include &quot;player\include\player.h&quot;

class Game;
class player;

class npc_base
{
protected:
	virtual void Update(Game &amp;game, player &amp;Player);
	virtual void Render(sf::RenderWindow &amp;App);
	virtual void setSpawnPoint(sf::Vector2f point);
	virtual void animation();
	virtual sf::Sprite getSprite();

protected:
//variablen, wie Geschwindigkeit, HP und so weiter

};

#endif
</code></pre>
<p>npc_dragon.h</p>
<pre><code>#ifndef NPC_DRAGON_H
#define NPC_DRAGON_H

#include &quot;npc.h&quot;

class Game;
class player;

class npc_dragon : protected npc_base
{
public:
	npc_dragon();
	~npc_dragon();

	void Update(Game &amp;game, player &amp;Player) override;
	void Render(sf::RenderWindow &amp;App) override;
	void setSpawnPoint(sf::Vector2f point) override;
	void animation() override;
	sf::Sprite getSprite() override;

private:

};

#endif
</code></pre>
<p>npc_dragon.cpp:</p>
<pre><code>#include &quot;include\npc_dragon.h&quot;

npc_dragon::npc_dragon()
{
//Initialisierung
}

void npc_dragon::Update(Game &amp;game, player &amp;Player)
{
//KI &amp; Bewegung
}

void npc_dragon::animation()
{
//Animation
}

void npc_dragon::Render(sf::RenderWindow &amp;App)
{

}

sf::Sprite npc_dragon::getSprite()
{

}

void npc_dragon::setSpawnPoint(sf::Vector2f point)
{

}

npc_dragon::~npc_dragon()
{
}
</code></pre>
<p>Das ganze gibt es noch mal in einer anderen Klasse, da da aber alles gleich ist, habe ich die mal nicht mit rein genommen.</p>
<p>Das ist die Codestruktur, die ich auch sonst über all verwende, nur hier funktioniert es nicht. Der Fehler ist wahrscheinlich offensichtlich, aber ich scheine blind zu sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich hoffe, mir kann da jemand helfen, der nicht wieder rumflamed, dass ich das doch bei google finden könnte, das habe ich gemacht und nichts gefunden!</p>
<p>lg,<br />
Hegad</p>
<p>PS: Ich verwende die SFML für die Grafik, also nicht über den &quot;sf&quot;-Namespace wundern <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/330718/basisklasse-undefiniert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 18:23:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330718.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Jan 2015 13:39:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Basisklasse undefiniert on Fri, 23 Jan 2015 13:40:54 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe schon ziemlich lange gesucht, doch keine Antwort gefunden, die mir geholfen hat. Aber ich habe hier einen Fehler, der nicht da sein sollte:</p>
<blockquote>
<p>error C2504: 'npc_base': Basisklasse undefiniert</p>
</blockquote>
<p>Hier mal die Dateien, bis aufs wichtigste gekürzt:</p>
<p>Basisklasse (npc.h):</p>
<pre><code>#ifndef NPC_H
#define NPC_H

#include &lt;SFML\Graphics.hpp&gt;
#include &quot;core\include\game.h&quot;
#include &quot;manager\include\Resource.h&quot;
#include &quot;player\include\player.h&quot;

class Game;
class player;

class npc_base
{
protected:
	virtual void Update(Game &amp;game, player &amp;Player);
	virtual void Render(sf::RenderWindow &amp;App);
	virtual void setSpawnPoint(sf::Vector2f point);
	virtual void animation();
	virtual sf::Sprite getSprite();

protected:
//variablen, wie Geschwindigkeit, HP und so weiter

};

#endif
</code></pre>
<p>npc_dragon.h</p>
<pre><code>#ifndef NPC_DRAGON_H
#define NPC_DRAGON_H

#include &quot;npc.h&quot;

class Game;
class player;

class npc_dragon : protected npc_base
{
public:
	npc_dragon();
	~npc_dragon();

	void Update(Game &amp;game, player &amp;Player) override;
	void Render(sf::RenderWindow &amp;App) override;
	void setSpawnPoint(sf::Vector2f point) override;
	void animation() override;
	sf::Sprite getSprite() override;

private:

};

#endif
</code></pre>
<p>npc_dragon.cpp:</p>
<pre><code>#include &quot;include\npc_dragon.h&quot;

npc_dragon::npc_dragon()
{
//Initialisierung
}

void npc_dragon::Update(Game &amp;game, player &amp;Player)
{
//KI &amp; Bewegung
}

void npc_dragon::animation()
{
//Animation
}

void npc_dragon::Render(sf::RenderWindow &amp;App)
{

}

sf::Sprite npc_dragon::getSprite()
{

}

void npc_dragon::setSpawnPoint(sf::Vector2f point)
{

}

npc_dragon::~npc_dragon()
{
}
</code></pre>
<p>Das ganze gibt es noch mal in einer anderen Klasse, da da aber alles gleich ist, habe ich die mal nicht mit rein genommen.</p>
<p>Das ist die Codestruktur, die ich auch sonst über all verwende, nur hier funktioniert es nicht. Der Fehler ist wahrscheinlich offensichtlich, aber ich scheine blind zu sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich hoffe, mir kann da jemand helfen, der nicht wieder rumflamed, dass ich das doch bei google finden könnte, das habe ich gemacht und nichts gefunden!</p>
<p>lg,<br />
Hegad</p>
<p>PS: Ich verwende die SFML für die Grafik, also nicht über den &quot;sf&quot;-Namespace wundern <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2439223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439223</guid><dc:creator><![CDATA[Hegad]]></dc:creator><pubDate>Fri, 23 Jan 2015 13:40:54 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Fri, 23 Jan 2015 13:48:51 GMT]]></title><description><![CDATA[<p>Vermutung: in game, Resource oder player wird npc_dragon eingebunden und npc vorwärts deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439225</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 23 Jan 2015 13:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Fri, 23 Jan 2015 13:51:40 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Vermutung: in game, Resource oder player wird npc_dragon eingebunden und npc vorwärts deklariert.</p>
</blockquote>
<p>Habe ich gerade noch einmal nachgeguckt, aber in den Dateien, die ich eingebunden habe nutze ich die npc_dragon gar nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":\"
      alt="😕"
    /> Nur in einer Klasse (playstate), da habe ich aber alles richtig eingebunden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439226</guid><dc:creator><![CDATA[Hegad]]></dc:creator><pubDate>Fri, 23 Jan 2015 13:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Fri, 23 Jan 2015 17:08:50 GMT]]></title><description><![CDATA[<p>Du wirst trotzdem eine Kreuzreferenz (cross include) haben (wenn auch indirekt, d.h. über mehrere Include-Dateien).</p>
<p>Wird 'playstate' von game.h, resource.h oder player.h eingebunden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439247</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 23 Jan 2015 17:08:50 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Fri, 23 Jan 2015 19:55:20 GMT]]></title><description><![CDATA[<p>Pack mal in alle fraglichen include Files ein <a href="https://msdn.microsoft.com/en-us/library/x7dkzch2.aspx" rel="nofollow">#pragma message</a> rein.<br />
Dann kannst du nachvollziehen in welcher Reihenfolge die inkludiert werden.</p>
<p>ps: Ansonsten kannst du mal gucken ob es einen Compiler-Switch gibt, der dafür sorgt dass bei jedem #include eine Nachricht ausgegeben wird und/oder das fertig &quot;vorbearbeitete&quot; File (also nachdem der Präprozessor gelaufen ist) abgespeichert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439280</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 23 Jan 2015 19:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Sat, 24 Jan 2015 12:05:06 GMT]]></title><description><![CDATA[<p>Ich habe noch mal etwas rumprobiert und bemerkt, dass alles wunderbar compiliert wird, wenn ich die 2. Klasse, die von npc_base erbt komplett auskommentiere. Wenn diese aber drin ist, kommt der Fehler, dass npc_base bei npc_dragon nicht definiert ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":\"
      alt="😕"
    /></p>
<p>hier noch mal die besagte 2. Klasse:</p>
<pre><code>#ifndef NPC_SHEEP_H
#define NPC_SHEEP_H

#include &quot;npc.h&quot;

class Game;
class player;

class npc_sheep : protected npc_base
{
public:
	npc_sheep();
	~npc_sheep();

	void Update(Game &amp;game, player &amp;Player) override;
	void Render(sf::RenderWindow &amp;App) override;
	void setSpawnPoint(sf::Vector2f point) override;
	void animation() override;
	sf::Sprite getSprite() override;

private:

};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2439343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439343</guid><dc:creator><![CDATA[Hegad]]></dc:creator><pubDate>Sat, 24 Jan 2015 12:05:06 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Sat, 24 Jan 2015 14:38:21 GMT]]></title><description><![CDATA[<p>Hast du mal den Tipp von hustbaer ausprobiert?</p>
<p>PS: Du solltest deine Klassen- und Variablennamen einheitlich gestalten, d.h. entweder immer mit Großbuchstaben am Anfang (bei den Klassen) oder generell Kleinbuchstaben: Game &lt;-&gt; player.<br />
Gleiches gilt dann auch für deine Klassenfunktionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439353</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 24 Jan 2015 14:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Sat, 24 Jan 2015 14:03:01 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Pack mal in alle fraglichen include Files ein <a href="https://msdn.microsoft.com/en-us/library/x7dkzch2.aspx" rel="nofollow">#pragma message</a> rein.<br />
Dann kannst du nachvollziehen in welcher Reihenfolge die inkludiert werden.</p>
<p>ps: Ansonsten kannst du mal gucken ob es einen Compiler-Switch gibt, der dafür sorgt dass bei jedem #include eine Nachricht ausgegeben wird und/oder das fertig &quot;vorbearbeitete&quot; File (also nachdem der Präprozessor gelaufen ist) abgespeichert wird.</p>
</blockquote>
<p>Ich habe das mal ausprobiert:<br />
er deklariert tatsächlich erst die abgeleiteten Klassen von npc_base, also npc_dragon. Das scheint aber kein Problem darzustellen, wenn nur einmal von der npc_base-Klasse abgeleitet wird, denn dann geht alles wunderbar. Wenn ich aber npc_sheep wieder &quot;aktiviere&quot; (hatte vorher zum Test diese Klasse komplett auskommentiert), dann kommt ein Fehler.</p>
<p>Ausgegebene Reihenfolge:<br />
npc_sheep<br />
npc_base<br />
npc_dragon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439377</guid><dc:creator><![CDATA[Hegad]]></dc:creator><pubDate>Sat, 24 Jan 2015 14:03:01 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Sat, 24 Jan 2015 14:35:16 GMT]]></title><description><![CDATA[<p>Hegad schrieb:</p>
<blockquote>
<p>er deklariert tatsächlich erst die abgeleiteten Klassen</p>
</blockquote>
<p>Nicht er, sondern du. Du wirst wohl nicht drumherum kommen, nochmal genau hinzuschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439381</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 24 Jan 2015 14:35:16 GMT</pubDate></item><item><title><![CDATA[Reply to Basisklasse undefiniert on Sun, 25 Jan 2015 15:54:05 GMT]]></title><description><![CDATA[<p>Ok! Habe eine Lösung gefunden:</p>
<p>ich habe npc_dragon und npc_sheep jetzt nicht in der Haederdatei von meinem Playstate sondern in dessen .cpp inkludiert.</p>
<p>Trotzdem danke für die ganzen Antworten, es hat schon einen Grund, warum ich in diesem Forum und nicht in einem anderen bin <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2439640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439640</guid><dc:creator><![CDATA[Hegad]]></dc:creator><pubDate>Sun, 25 Jan 2015 15:54:05 GMT</pubDate></item></channel></rss>