<?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[Frage zum Schreibstil bei Namespaces und Klassen]]></title><description><![CDATA[<p>Ich hätte mal zwei Fragen zum Schreibstil bei Klassen in Namespaces. Es handelt sich hierbei um Stilfragen, also keine direkt technischen Sachen. Manch einem mag das vielleicht komisch vorkommen, aber mir geht es darum, hierzu den besten Stil zu erfahren.</p>
<ol>
<li></li>
</ol>
<p>Ich habe folgende Header-Datei:</p>
<pre><code class="language-cpp">#ifndef HEADER_H
#define HEADER_H

namespace Namensraum
{
    class Klasse
    {
    public:
        void Function ();
    };
}

#endif
</code></pre>
<p>Nun gibt es im wesentlichen drei Möglichkeiten, wie die CPP-Datei dazu aussehen kann:</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

namespace Namensraum
{
    void Klasse::Funktion ()
    {
    }
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

void Namensraum::Klasse::Funktion ()
{
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

using namespace Namensraum;

void Klasse::Funktion ()
{
}
</code></pre>
<p>Alle drei Schreibweisen führen zum Ziel. Doch was ich jetzt einfach gern mal wissen würde: Welche ist denn nun die übliche und die allgemein anerkannte? Welche der drei Schreibweisen ist der beste Stil?</p>
<ol start="2">
<li></li>
</ol>
<p>Wenn ich eine Klasse deklariere, dann benenne ich die Header-Datei und die Include-Guards im Normalfall nach meiner Klasse. Wenn die Klasse also MeineKlasse heißt, dann heißt der Dateiname &quot;Meine Klasse.h&quot; und der Include-Guard heißt MEINE_KLASSE_H. Was müßte ich aber bei einer einzelnen Klasse machen, die in einem Namespace deklariert ist? Also, ich habe die Klasse MeinNamespace::MeineKlasse. Soll ich jetzt die Datei nur nach der Klasse benennen oder sie &quot;Mein Namespace Meine Klasse.h&quot; nennen? Wie sollte man sowas standardmäßig handhaben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155473/frage-zum-schreibstil-bei-namespaces-und-klassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 12:04:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155473.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Aug 2006 16:18:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Schreibstil bei Namespaces und Klassen on Sun, 06 Aug 2006 16:18:43 GMT]]></title><description><![CDATA[<p>Ich hätte mal zwei Fragen zum Schreibstil bei Klassen in Namespaces. Es handelt sich hierbei um Stilfragen, also keine direkt technischen Sachen. Manch einem mag das vielleicht komisch vorkommen, aber mir geht es darum, hierzu den besten Stil zu erfahren.</p>
<ol>
<li></li>
</ol>
<p>Ich habe folgende Header-Datei:</p>
<pre><code class="language-cpp">#ifndef HEADER_H
#define HEADER_H

namespace Namensraum
{
    class Klasse
    {
    public:
        void Function ();
    };
}

#endif
</code></pre>
<p>Nun gibt es im wesentlichen drei Möglichkeiten, wie die CPP-Datei dazu aussehen kann:</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

namespace Namensraum
{
    void Klasse::Funktion ()
    {
    }
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

void Namensraum::Klasse::Funktion ()
{
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

using namespace Namensraum;

void Klasse::Funktion ()
{
}
</code></pre>
<p>Alle drei Schreibweisen führen zum Ziel. Doch was ich jetzt einfach gern mal wissen würde: Welche ist denn nun die übliche und die allgemein anerkannte? Welche der drei Schreibweisen ist der beste Stil?</p>
<ol start="2">
<li></li>
</ol>
<p>Wenn ich eine Klasse deklariere, dann benenne ich die Header-Datei und die Include-Guards im Normalfall nach meiner Klasse. Wenn die Klasse also MeineKlasse heißt, dann heißt der Dateiname &quot;Meine Klasse.h&quot; und der Include-Guard heißt MEINE_KLASSE_H. Was müßte ich aber bei einer einzelnen Klasse machen, die in einem Namespace deklariert ist? Also, ich habe die Klasse MeinNamespace::MeineKlasse. Soll ich jetzt die Datei nur nach der Klasse benennen oder sie &quot;Mein Namespace Meine Klasse.h&quot; nennen? Wie sollte man sowas standardmäßig handhaben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111679</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sun, 06 Aug 2006 16:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Schreibstil bei Namespaces und Klassen on Sun, 06 Aug 2006 16:30:12 GMT]]></title><description><![CDATA[<p>NES-Spieler schrieb:</p>
<blockquote>
<p>Alle drei Schreibweisen führen zum Ziel. Doch was ich jetzt einfach gern mal wissen würde: Welche ist denn nun die übliche und die allgemein anerkannte? Welche der drei Schreibweisen ist der beste Stil?</p>
</blockquote>
<p>Es gibt nichts Allgemeines. IMO ist die erste Variante die &quot;richtige&quot;, weil sie Namenskonflikte praktisch ausschließt.</p>
<p>NES-Spieler schrieb:</p>
<blockquote>
<p>Wenn ich eine Klasse deklariere, dann benenne ich die Header-Datei und die Include-Guards im Normalfall nach meiner Klasse. Wenn die Klasse also MeineKlasse heißt, dann heißt der Dateiname &quot;Meine Klasse.h&quot; und der Include-Guard heißt MEINE_KLASSE_H. Was müßte ich aber bei einer einzelnen Klasse machen, die in einem Namespace deklariert ist? Also, ich habe die Klasse MeinNamespace::MeineKlasse. Soll ich jetzt die Datei nur nach der Klasse benennen oder sie &quot;Mein Namespace Meine Klasse.h&quot; nennen? Wie sollte man sowas standardmäßig handhaben?</p>
</blockquote>
<p>Wie gesagt, dafür gibts keinen Standard. Ich mache es so, dass Unternamensräume ein eigenes Verzeichnis bekommen (wobei ich mir die zusätzliche Schreibarbeit in der Implementierungsdatei mit SCons und dem entsprechenden Skripting spare ;)) und der Include-Guard den gesamten Namespace enthält:</p>
<pre><code class="language-cpp">namespace A
{
namespace B
{

    class Asdf
    {};

}
}

-&gt; A_B_ASDF_HPP
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1111688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111688</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 06 Aug 2006 16:30:12 GMT</pubDate></item></channel></rss>