<?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[Problem mit den namespaces]]></title><description><![CDATA[<p>Hallo, ich habe mehrere Dateien in unterschiedlichen Ordnern die ich ein binden möchte.</p>
<p>controller/playerController.h:</p>
<pre><code class="language-cpp">#include &quot;../inputHandler/playerInputHandler.h&quot;

namespace zombie {
  namespace controller {

   class PlayerController : public scape::physics::RigidBodyController {
   private:
      ....
   };
  }
}
</code></pre>
<p>inputhandler/playerInputHandler.h:</p>
<pre><code class="language-cpp">#include &quot;../controller/playerController.h&quot;

namespace zombie {
  namespace inputhandler {

   class PlayerInputHandler : public scape::logic::message::MessageTopicSubscriber, public scape::core::RefCounted {
	private:
	 zombie::controller::PlayerController * m_playerController;
	 void registerListener();

	public:
	 PlayerInputHandler(controller::PlayerController * playerController);
	 virtual void receiveMessage(scape::logic::message::Message * msg);

   };
  }
}
</code></pre>
<p>Das sind jetzt Ausschnitte aus den 2 Dateien um die es geht, der Fehler den ich bekomme ist:</p>
<pre><code>../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: ‘zombie::controller’ has not been declared
../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: ISO C++ forbids declaration of ‘PlayerController’ with no type
../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: expected ‘;’ before ‘*’ token
../../src/player/../controller/../inputHandler/playerInputHandler.h:12: error: ‘zombie::controller’ has not been declared
../../src/player/../controller/../inputHandler/playerInputHandler.h:12: error: expected ‘)’ before ‘*’ token
</code></pre>
<p>Ich programmiere erst seit knapp nem Monat c++ und mit der Klassenstruktur und den namespaces komme ich noch nicht so klar <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/topic/254814/problem-mit-den-namespaces</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 09:20:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254814.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Nov 2009 13:25:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 13:25:28 GMT]]></title><description><![CDATA[<p>Hallo, ich habe mehrere Dateien in unterschiedlichen Ordnern die ich ein binden möchte.</p>
<p>controller/playerController.h:</p>
<pre><code class="language-cpp">#include &quot;../inputHandler/playerInputHandler.h&quot;

namespace zombie {
  namespace controller {

   class PlayerController : public scape::physics::RigidBodyController {
   private:
      ....
   };
  }
}
</code></pre>
<p>inputhandler/playerInputHandler.h:</p>
<pre><code class="language-cpp">#include &quot;../controller/playerController.h&quot;

namespace zombie {
  namespace inputhandler {

   class PlayerInputHandler : public scape::logic::message::MessageTopicSubscriber, public scape::core::RefCounted {
	private:
	 zombie::controller::PlayerController * m_playerController;
	 void registerListener();

	public:
	 PlayerInputHandler(controller::PlayerController * playerController);
	 virtual void receiveMessage(scape::logic::message::Message * msg);

   };
  }
}
</code></pre>
<p>Das sind jetzt Ausschnitte aus den 2 Dateien um die es geht, der Fehler den ich bekomme ist:</p>
<pre><code>../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: ‘zombie::controller’ has not been declared
../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: ISO C++ forbids declaration of ‘PlayerController’ with no type
../../src/player/../controller/../inputHandler/playerInputHandler.h:8: error: expected ‘;’ before ‘*’ token
../../src/player/../controller/../inputHandler/playerInputHandler.h:12: error: ‘zombie::controller’ has not been declared
../../src/player/../controller/../inputHandler/playerInputHandler.h:12: error: expected ‘)’ before ‘*’ token
</code></pre>
<p>Ich programmiere erst seit knapp nem Monat c++ und mit der Klassenstruktur und den namespaces komme ich noch nicht so klar <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/1811412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811412</guid><dc:creator><![CDATA[eicon11]]></dc:creator><pubDate>Sat, 21 Nov 2009 13:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 14:29:28 GMT]]></title><description><![CDATA[<p>- Diese starke Verschachtelung von Namensräumen ist total übertrieben und bringt gar nichts.<br />
- Du hast eine zyklische Header-Abhängigkeit. Versuch die aufzulösen<br />
- Ich sehe gar keine Include-Guards</p>
<p>Mach Dich schlau, wie &quot;getrennte Übersetzung&quot; funktioniert, und wozu Header-Dateien da sind. Kann man in schlauen Büchern nachlesen. Ich habe bestimmt auch schon mindestens 3mal versucht, das hier zu erklären. Bin jetzt zu faul dazu. Streng Dich mal'n bissel an! :p</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811429</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 21 Nov 2009 14:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 14:36:00 GMT]]></title><description><![CDATA[<p>is gar nich so schwer zu beheben... mach das include weg und tu es in die cpp und schreibe</p>
<pre><code class="language-cpp">PlayerInputHandler(class controller::PlayerController * playerController);
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">PlayerInputHandler(struct controller::PlayerController * playerController);
</code></pre>
<p>je nach dem, als was es definiert ist(sonst bekommst du zumindest beim msvc ne hässliche warnung, weil der angst hat, dass du was anderes meint, als er &quot;denkt&quot;)</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811430</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 21 Nov 2009 14:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 14:40:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>1. Unser Projekt ist schon ziemlich umfangreich, und es ich finde es übersichtlicher.</p>
<p>2. Die kann ich nicht auflösen, die brauchen ja beide einen Zeiger aufeinander ?! Es ging ja auch noch alles bevor ich sie in eigene source Ordner verschoben habe.</p>
<p>3. was sind include-Guards ? meinst du damit<br />
#ifndef PLAYERCONTROLLER_H_<br />
#define PLAYERCONTROLLER_H_</p>
<p>und sowas ? Die hab ich drin <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>Ja mit der getrennten Übersetzung hört sich schon gut an ^^, wenn du es schon 3 mal Erklärt hast bin ich auch mit einem link zu deinen früheren Beitragen zufrieden :-).</p>
<p>Gruesse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811432</guid><dc:creator><![CDATA[eicon11]]></dc:creator><pubDate>Sat, 21 Nov 2009 14:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 14:43:51 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>is gar nich so schwer zu beheben... mach das include weg und tu es in die cpp und schreibe</p>
</blockquote>
<p>Hallo, ich habe es ja extra ausgelagert weil es sonnst viel zu unübersichtlich ist und ich auch noch von anderen Klassen den Controller einbinden möchte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811434</guid><dc:creator><![CDATA[eicon11]]></dc:creator><pubDate>Sat, 21 Nov 2009 14:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 15:32:31 GMT]]></title><description><![CDATA[<p>So, wie ich das sehe brauchst du die includes gar nicht. Lies mal das hier:<br />
<a href="http://drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77" rel="nofollow">http://drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77</a></p>
<p>Ist eigentlich empfehlenswert die Abhängigkeiten so weit, wie möglich zu vermeiden. Hilft auch gegen zyklischen Includes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811455</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 21 Nov 2009 15:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 15:45:42 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>So, wie ich das sehe brauchst du die includes gar nicht.</p>
</blockquote>
<p>Sag ich doch...</p>
<p>@eicon:<br />
du sollst ja auch das machen, was ich geschrieben habe und dir nicht irgendwas zusammendichten xD<br />
noch mal:</p>
<pre><code class="language-cpp">/*header, alt*/
#include &quot;../controller/playerController.h&quot;

namespace zombie {
  namespace inputhandler {

   class PlayerInputHandler : public scape::logic::message::MessageTopicSubscriber, public scape::core::RefCounted {
    private:
     zombie::controller::PlayerController * m_playerController;
     void registerListener();

    public:
     PlayerInputHandler(controller::PlayerController * playerController);
     virtual void receiveMessage(scape::logic::message::Message * msg);

   };
  }
}
</code></pre>
<pre><code class="language-cpp">/*header neu*/

namespace zombie {
  namespace inputhandler {

   class PlayerInputHandler : public scape::logic::message::MessageTopicSubscriber, public scape::core::RefCounted {
    private:
     zombie::controller::PlayerController * m_playerController;
     void registerListener();

    public:
     PlayerInputHandler(class controller::PlayerController * playerController);
     virtual void receiveMessage(scape::logic::message::Message * msg);

   };
  }
}
</code></pre>
<pre><code class="language-cpp">/*source alt*/
#include &quot;header.h&quot;

/*impl*/
</code></pre>
<pre><code class="language-cpp">/*source neu*/
#include &quot;header.h&quot;
#include &quot;andererheader.h&quot;

/*impl, bleibt wie gehabt*/
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811463</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 21 Nov 2009 15:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 15:48:42 GMT]]></title><description><![CDATA[<blockquote>
<p>Ja mit der getrennten Übersetzung hört sich schon gut an ^^, wenn du es schon 3 mal Erklärt hast bin ich auch mit einem link zu deinen früheren Beitragen zufrieden <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>
</blockquote>
<p>Ich habe alles gesagt, was ich sagen wollte. Jetzt, diese Links rauszusuchen, oder diese <em>Basics</em> runterzubeten, die ja in jedem guten Buch besser erklärt stehen, mache ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811465</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 21 Nov 2009 15:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sat, 21 Nov 2009 15:51:41 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>So, wie ich das sehe brauchst du die includes gar nicht.</p>
</blockquote>
<p>Sag ich doch...</p>
</blockquote>
<p>Sorry, das scheine ich überlesen zu haben, aber ich denke der Link kann trotzdem auch helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1811468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811468</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 21 Nov 2009 15:51:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit den namespaces on Sun, 22 Nov 2009 15:01:10 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>So, wie ich das sehe brauchst du die includes gar nicht. Lies mal das hier:<br />
<a href="http://drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77" rel="nofollow">http://drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77</a></p>
<p>Ist eigentlich empfehlenswert die Abhängigkeiten so weit, wie möglich zu vermeiden. Hilft auch gegen zyklischen Includes.</p>
</blockquote>
<p>Ja, die Seite hat mir sehr geholfen hab es jetzt hin bekommen. Danke auch an die anderen.</p>
<p>Gruesse <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/1811835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1811835</guid><dc:creator><![CDATA[eicon11]]></dc:creator><pubDate>Sun, 22 Nov 2009 15:01:10 GMT</pubDate></item></channel></rss>