<?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[namespaces in java-packages-stiel]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich arbeite seit langem unter Java. Nun will ich mich aus bestimmten Gründen in C++ einarbeiten. Auf den ersten Blick erscheint mir das C++ doch sehr chaotisch im Vergleich zu Java <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>Frage: In Java bin ich es gewohnt jede Klasse in ein <strong>package</strong> zu packen (dh jede Datei ist entsprechen mit der package-Direktive versehen). Ein package kann mehrere Klassen enthalten (jedoch am besten verteilt auf mehrere Dateien). Nun will ich das auch unter C++ mit den namespaces nachstellen.</p>
<p>zb in Java:</p>
<p>Datei1</p>
<pre><code class="language-java">package test;

class A {
//
}
</code></pre>
<p>Datei2</p>
<pre><code class="language-java">package test;

class B {
//
}
</code></pre>
<p>ist das Gleiche in C++ wie folgt realisiert:<br />
header1:</p>
<pre><code class="language-cpp">namespace test {
class A {
//
}
}
</code></pre>
<p>header2:</p>
<pre><code class="language-cpp">namespace test {
class B {
 //
}
}
</code></pre>
<p>??</p>
<p>Natürlich könnte ich das durch Ausprobieren testen, aber mich interessiert auch die &quot;übliche&quot; Herangehensweise.</p>
<p>Für Eure Antwort wäre ich Euch sehr dankbar.</p>
<p>Mit freundlichen Grüßen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184510/namespaces-in-java-packages-stiel</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 17:37:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184510.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jun 2007 23:07:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Fri, 15 Jun 2007 23:07:33 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich arbeite seit langem unter Java. Nun will ich mich aus bestimmten Gründen in C++ einarbeiten. Auf den ersten Blick erscheint mir das C++ doch sehr chaotisch im Vergleich zu Java <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>Frage: In Java bin ich es gewohnt jede Klasse in ein <strong>package</strong> zu packen (dh jede Datei ist entsprechen mit der package-Direktive versehen). Ein package kann mehrere Klassen enthalten (jedoch am besten verteilt auf mehrere Dateien). Nun will ich das auch unter C++ mit den namespaces nachstellen.</p>
<p>zb in Java:</p>
<p>Datei1</p>
<pre><code class="language-java">package test;

class A {
//
}
</code></pre>
<p>Datei2</p>
<pre><code class="language-java">package test;

class B {
//
}
</code></pre>
<p>ist das Gleiche in C++ wie folgt realisiert:<br />
header1:</p>
<pre><code class="language-cpp">namespace test {
class A {
//
}
}
</code></pre>
<p>header2:</p>
<pre><code class="language-cpp">namespace test {
class B {
 //
}
}
</code></pre>
<p>??</p>
<p>Natürlich könnte ich das durch Ausprobieren testen, aber mich interessiert auch die &quot;übliche&quot; Herangehensweise.</p>
<p>Für Eure Antwort wäre ich Euch sehr dankbar.</p>
<p>Mit freundlichen Grüßen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306982</guid><dc:creator><![CDATA[linu*x*bie]]></dc:creator><pubDate>Fri, 15 Jun 2007 23:07:33 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Fri, 15 Jun 2007 23:36:21 GMT]]></title><description><![CDATA[<p>Jupp, kannst Du so machen...also namespace's sind ja primär dafür da, dass Namenkonflikte verhindert werden <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="😉"
    /> . (Bin (noch) kein Java-Experte, kann daher nicht sagen, was packages machen bzw. es damit vergleichen <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/1306990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306990</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 15 Jun 2007 23:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 06:43:37 GMT]]></title><description><![CDATA[<p>Hi Peter,</p>
<p>Du kannst namespaces ebenso zum &quot;Ordnen&quot; verwenden wie packages in Java. Aber es gibt keine &quot;namespace-Zugriffsklasse&quot;, d.h. um den Zugriff (private, public, protected) muss sich jede Klasse selbst kümmern.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307020</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 16 Jun 2007 06:43:37 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 07:58:24 GMT]]></title><description><![CDATA[<p>Diese Aufteilung wie in Java gibt es in C++ nicht. Packages haben auch pysikalische Auswirkungen (Package A.B gehört in Verzeichnis A/B), und die hast du in C++ nicht.</p>
<p>In C++ ist es üblich einen Namespace für eine Anwendung oder eine Library zu haben. In Java wird dagegen alles in hunderte verschiedene Packages verteilt. Macht niemand in C++. Schon allein deshalb, weil die IDEs einen nicht dabei unterstützen.</p>
<p>Wenn ich eine Library entwickle, die z.B. Raytracing macht. Dann habe ich dafür meistens einen Namespace - fertig. DIe C++-Standardlibrary ist z.B. in einem einzigen Namespace &quot;std&quot;. Wenn du diverse GUI-Library benutzt, sind die gesamten Klassen auch nur in einem Namespace (z.B. sind alle FLTK-Klassen im Namespace &quot;fltk&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307029</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 16 Jun 2007 07:58:24 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 08:04:41 GMT]]></title><description><![CDATA[<p>Eigentlich sind namespace und package sehr unterschiedlich. einmal die verzeichnis sache, dann gibt es sowas wie &quot;namespace private&quot; also &quot;package private&quot; auch nicht und in c++ musst du immer den namespace angeben oder mit using in java bruachst du nur das import was ich mit dem c++ include vergleichen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307037</guid><dc:creator><![CDATA[and i don&#x27;t know if ...]]></dc:creator><pubDate>Sat, 16 Jun 2007 08:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 09:49:36 GMT]]></title><description><![CDATA[<p>java braucht halt keine &quot;includes&quot;, weil das package system sich um alles kümmert. namespaces in c++ ersetzen keine packages. der zugriff gestaltet sich ähnlich, man benötigt entweder den qualifizierten namen einer klasse, um sie verwenden zu können (package.klasse vs. namespace::klasse) oder muss den &quot;namensraum&quot; für den aktuellen scope zugänglich machen (import package.* vs using namespace namespace).<br />
in c++ kann die using declaration allerdings in jedem block, für diesen block, geschehen.</p>
<p>man kann namespaces ähnlich wie packages verwenden, ist allerdings nicht üblich. während es in java als &quot;nicht empfehlenswert&quot; gilt, klassen in das globale package zu schubsen, ist das in c++ für stand-alone projekte sehr üblich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307068</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sat, 16 Jun 2007 09:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 14:27:24 GMT]]></title><description><![CDATA[<p>Vielen Dank für die zahlreichen Antworten <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>gut zu wissen, ich hatte schon vorgehabt ein Projekt auf unzählige namespaces und sub-namespaces aufzuteilen <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>noch eine syntaktische Frage:<br />
In dem von mir o.g. Beispiel sind also Klasse A und B im gleichen namespace &quot;test&quot;, richtig? Mich verwirren hierbei die &quot;umschliessenden Klammern&quot;. Es sieht dabei so aus, als ob in dem namespace nur das enthalten ist, was in den Klammern eingeschlossen ist. In dem o.g. Beispiel gibts ein &quot;namespace test-Klammerpaar&quot; sowohl in der A.h und der B.h. Ist es der gleiche namespace ?</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307250</guid><dc:creator><![CDATA[linu*x*bie]]></dc:creator><pubDate>Sat, 16 Jun 2007 14:27:24 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 14:31:02 GMT]]></title><description><![CDATA[<p>linu(x)bie schrieb:</p>
<blockquote>
<p>noch eine syntaktische Frage:<br />
In dem von mir o.g. Beispiel sind also Klasse A und B im gleichen namespace &quot;test&quot;, richtig? Mich verwirren hierbei die &quot;umschliessenden Klammern&quot;. Es sieht dabei so aus, als ob in dem namespace nur das enthalten ist, was in den Klammern eingeschlossen ist. In dem o.g. Beispiel gibts ein &quot;namespace test-Klammerpaar&quot; sowohl in der A.h und der B.h. Ist es der gleiche namespace ?</p>
</blockquote>
<p>Ja, natürlich.</p>
<p>Noch ein Unterschied zu Java-Packages: in C++ sind Namespaces tatsächlich hierarchisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307254</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sat, 16 Jun 2007 14:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 14:43:33 GMT]]></title><description><![CDATA[<p>Danke <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>finix schrieb:</p>
<blockquote>
<p>Noch ein Unterschied zu Java-Packages: in C++ sind Namespaces tatsächlich hierarchisch.</p>
</blockquote>
<p>ähm... was heißt das bitte? In java sind doch packages auch hierarchisch. Dabei geht es aus vom Defaultpackage als Wurzel bis zu den einzellnen subpackages, welche keine weiteren enthalten. Das sind die Blätter. Oder was meinst Du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307265</guid><dc:creator><![CDATA[linu*x*bie]]></dc:creator><pubDate>Sat, 16 Jun 2007 14:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 14:54:21 GMT]]></title><description><![CDATA[<p>linu(x)bie schrieb:</p>
<blockquote>
<p>Danke <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>finix schrieb:</p>
<blockquote>
<p>Noch ein Unterschied zu Java-Packages: in C++ sind Namespaces tatsächlich hierarchisch.</p>
</blockquote>
<p>ähm... was heißt das bitte? In java sind doch packages auch hierarchisch. Dabei geht es aus vom Defaultpackage als Wurzel bis zu den einzellnen subpackages, welche keine weiteren enthalten. Das sind die Blätter. Oder was meinst Du?</p>
</blockquote>
<p>Soweit ich informiert bin sind die Punkte in <code>package</code> -Bezeichnern lediglich Konvention.<br />
Im Gegensatz dazu befindet sich hier</p>
<pre><code class="language-cpp">namespace javax {
namespace swing {
//...
}
}

// edit:
using namespace javax;
swing::foo bar; // gueltiges C++
</code></pre>
<p>das Package &quot;swing&quot; tatsächlich <em>in</em> &quot;javax&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307268</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sat, 16 Jun 2007 14:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 14:58:39 GMT]]></title><description><![CDATA[<p>hmm... glaube das ist in dieser hinsicht auch hierarchisch. Der pkt ist keine Konvention, sonder hat sogar eine physikalische Auswirkung. Demmnach ist javax ein Verzeichnis und swing ein Unterverzeichniss (im Dateisystem).<br />
Konstrukte wie:</p>
<pre><code class="language-java">import javax.*;
</code></pre>
<p>sind möglich. Dies includiert alles im Verzeichnis javax/ bis auf den Inhalt von Unterverzeichnissen. (Vergleichbar mit der using-Direktive in C++).</p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307274</guid><dc:creator><![CDATA[linu*x*bie]]></dc:creator><pubDate>Sat, 16 Jun 2007 14:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 15:07:23 GMT]]></title><description><![CDATA[<p>Nein, die Punkte im Java-Package sind nicht eine Konvention, sondern repräsentieren technisch ein Verzeichnis oder Datei.</p>
<p>java.util zwingt zu java/util<br />
java.util.String zwingt zu java/util/String.java</p>
<p>In C++ sind Namepaces (wie gesagt) technisch ganz anders. Auch sind sie im Unterschied zu Packages &quot;offen&quot;. Man kann Namespaces überall definieren und auch ergänzen. Die geschweiften Klammern sind einfach der Sichtbarkeitsbereich (Scope).</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">// in x.hpp

namespace hallo
{
    class A
    {};
}
</code></pre>
<p>Und:</p>
<pre><code class="language-cpp">// in y.hpp

namespace hallo
{
    class B
    {};
}
</code></pre>
<p>D.h. Namespaces sind offen, da sie überall zus. Typen aufnehmen können. Also am Ende hat Namespace hallo Klasse A und B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307277</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 16 Jun 2007 15:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 15:16:12 GMT]]></title><description><![CDATA[<p>Aaah...</p>
<p>Gutes Beispiel.</p>
<p>Danke <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/1307284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307284</guid><dc:creator><![CDATA[linu*x*bie]]></dc:creator><pubDate>Sat, 16 Jun 2007 15:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 15:17:21 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Nein, die Punkte im Java-Package sind nicht eine Konvention, sondern repräsentieren technisch ein Verzeichnis oder Datei.</p>
<p>java.util zwingt zu java/util<br />
java.util.String zwingt zu java/util/String.java</p>
</blockquote>
<p>hallo,<br />
das ist quatsch, packages sind nicht hierarchisch und sind auch nicht zwingend durch unterordner im dateisystem definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307286</guid><dc:creator><![CDATA[Antwort schreiben]]></dc:creator><pubDate>Sat, 16 Jun 2007 15:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 15:47:59 GMT]]></title><description><![CDATA[<p>Ob die in Unterordnern sein müssen weiß ich nicht, allerdings ist es so, dass ansonsten kaum eine Entwicklungsumgebung damit zurecht kommt. Scheint also zumindest Usus zu sein.</p>
<p>Interessanter ist allerdings deine andere Behauptung. Meiner Meinung nach sind Packages schon hierachisch. Es ist zwar nicht der Fall, dass Sub-Packages autom. Zugriff auf ihre Super-Packages haben oder umgekehrt, aber zumindest gliedern sich die Klassen in ein hierachisches Konzept.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307311</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 16 Jun 2007 15:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to namespaces in java-packages-stiel on Sat, 16 Jun 2007 23:17:03 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Interessanter ist allerdings deine andere Behauptung. Meiner Meinung nach sind Packages schon hierachisch. Es ist zwar nicht der Fall, dass Sub-Packages autom. Zugriff auf ihre Super-Packages haben oder umgekehrt, aber zumindest gliedern sich die Klassen in ein hierachisches Konzept.</p>
</blockquote>
<p>inwiefern &quot;gliedern sie sich in ein hierarchisches konzept&quot; ?<br />
das package a.b hat nix mit dem package a oder dem package a.b.c zu tun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307486</guid><dc:creator><![CDATA[Antwort schreiben]]></dc:creator><pubDate>Sat, 16 Jun 2007 23:17:03 GMT</pubDate></item></channel></rss>