<?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[Namespace in Klassendeklaration]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche seit einiger Zeit nach speziellen Erklärung zu Namespaces. Mein Problem ist, dass ich meine Klassen in einem gemeinsamen Namespace deklariere (also alles in .h files). Da ich innerhalb dieser KLassen Zeiger oder Referenzen zu Klassen dieses Namensraum habe, ist meine Frage ob ich den Namensraum noch mal explizit angeben muss.</p>
<pre><code>file a.h

namespace ABC {
  class ClassA {
  ..
  .. 
  }
}

file b.h

namespace ABC {
  class ClassB {
  ..
  ClassB(ClassA* a) // Frage hier ABC::ClassA* oder oben using namespace?
  ..
  }
}
</code></pre>
<p>Wie am Bsp. zu erkennen möchte ich halt gern wissen, ob ich automatisch im Namensraum ABC bin, wenn ich eine Klasse in diesem deklariere. Oder muss ich bei Benutzung von Elementen aus diesem, jenes explizit angeben.</p>
<p>Warum frage ich dass:<br />
Ich wollte ein UML Digramm meines Projektes mit Umbrello erstellen. Aber da kamen nur komische Sachan raus.</p>
<p>MfG<br />
manne</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149841/namespace-in-klassendeklaration</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 09:42:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149841.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Jun 2006 08:48:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Namespace in Klassendeklaration on Sat, 10 Jun 2006 08:49:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche seit einiger Zeit nach speziellen Erklärung zu Namespaces. Mein Problem ist, dass ich meine Klassen in einem gemeinsamen Namespace deklariere (also alles in .h files). Da ich innerhalb dieser KLassen Zeiger oder Referenzen zu Klassen dieses Namensraum habe, ist meine Frage ob ich den Namensraum noch mal explizit angeben muss.</p>
<pre><code>file a.h

namespace ABC {
  class ClassA {
  ..
  .. 
  }
}

file b.h

namespace ABC {
  class ClassB {
  ..
  ClassB(ClassA* a) // Frage hier ABC::ClassA* oder oben using namespace?
  ..
  }
}
</code></pre>
<p>Wie am Bsp. zu erkennen möchte ich halt gern wissen, ob ich automatisch im Namensraum ABC bin, wenn ich eine Klasse in diesem deklariere. Oder muss ich bei Benutzung von Elementen aus diesem, jenes explizit angeben.</p>
<p>Warum frage ich dass:<br />
Ich wollte ein UML Digramm meines Projektes mit Umbrello erstellen. Aber da kamen nur komische Sachan raus.</p>
<p>MfG<br />
manne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074959</guid><dc:creator><![CDATA[mp83]]></dc:creator><pubDate>Sat, 10 Jun 2006 08:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Namespace in Klassendeklaration on Sat, 10 Jun 2006 08:59:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ClassB(ClassA* a)
</code></pre>
<p>Vor ClassA brauchst du kein ABC mehr schreiben. Wäre dies zwingend erforderlich, würde sich der COmpiler schon melden, das er ClassA nicht kennen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074965</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 10 Jun 2006 08:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to Namespace in Klassendeklaration on Sat, 10 Jun 2006 09:01:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
die Suche nach Namen beginnt im aktuellen Namensraum und, falls ein Name dort nicht gefunden wird, läuft in darüberliegenden Namensräumen weiter. Gleichzeitig werden Namen in äußeren Namensräumen immer von gleichen Namen im aktuellen Namensraum verdeckt. Solche können dann nur noch über eine Qulifikation angesprochen werden.</p>
<p>In deinem Beispiel:<br />
Wenn bei der Definition von ClassB ABC::ClassA bekannt ist (z.B. weil b.h a.h inkludiert), dann ist ClassA im Konstruktor von ClassB äquivalent zu ABC::ClassA.<br />
Gäbe es zusätzlich noch ein ClassA im globalen Namensraum und sollte ClassB diese Klasse referenzieren wollen, dann müsste der Konstruktor-Parameter den Namen ClassA qulifizieren, also ::ClassA.<br />
Und nochmal zur Erinnerung: weder using-Direktiven noch using-Deklarationen gehören in Header.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074970</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sat, 10 Jun 2006 09:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to Namespace in Klassendeklaration on Sat, 10 Jun 2006 09:37:52 GMT]]></title><description><![CDATA[<p>Danke,</p>
<p>da wäre jetzt nur noch eine Frage zu kären.<br />
Verwendet man bei der Benutzung von Elementen aus dem std namespace die folgende<br />
Schreibweise:</p>
<pre><code class="language-cpp">// file a.h
namespace ABC {
  class ClassA {
  ..
  ClassA(std::string&amp; foo, string&amp; bar){ // Frage hier ohne std:: oder mit?
  ..
  }
}
</code></pre>
<p>Das using namespace macht man doch im Allgemeinen nur in .C files (also .cpp)?</p>
<p>Oder? (Ich glaub, ich hab zu lange Java programmiert <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>MfG</p>
<p>// Tag repariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074972</guid><dc:creator><![CDATA[mp83]]></dc:creator><pubDate>Sat, 10 Jun 2006 09:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Namespace in Klassendeklaration on Sat, 10 Jun 2006 09:08:41 GMT]]></title><description><![CDATA[<p>Hallo,<br />
in Headern ist die einzig sinnvolle Vorgehensweise die Qualifikation mit std::</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074974</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sat, 10 Jun 2006 09:08:41 GMT</pubDate></item></channel></rss>