<?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[Organisation von Code]]></title><description><![CDATA[<p>Tut mir leid für die Noob-Frage, aber ich habe ein Problem meinen Code zu organisieren. Damit meine ich nun nicht die Organisation von Dateien, sondern der Code in der Datei. Es sieht alles so unübersichtlich aus. Einrückungen etc mache ich, aber wenn ich eine Datei nach einigen Wochen wieder öffen, dann erstmal &quot;woah wall of text&quot;.<br />
Hier mal als ein Beispiel ein Header von mir:<br />
[cpp]<br />
#ifndef _CREALWINDOW_H_<br />
#define _CREALWINDOW_H_</p>
<p>#include &lt;windows.h&gt;<br />
#include &quot;MyProject.h&quot;<br />
#include &quot;WindowSettings.h&quot;</p>
<p>NAMESPACE_BEGIN</p>
<p>/*************************************************<br />
Real Window-Class<br />
*************************************************/<br />
class CRealWindow<br />
{<br />
public:<br />
explicit CRealWindow( CWindowSettings&amp; settings );<br />
~CRealWindow();<br />
bool isRunning();</p>
<p>private:<br />
/*--------- Members ---------*/<br />
CWindowSettings m_settings;<br />
HWND m_hwnd;<br />
HINSTANCE m_instance;<br />
bool m_running;</p>
<p>/*--------- Methods ---------<em>/<br />
bool createWindow();<br />
void destroyWindow();<br />
LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );<br />
static LRESULT CALLBACK sWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );<br />
static CRealWindow</em> GetObjectFromWindow(HWND hWnd);<br />
};</p>
<p>NAMESPACE_END</p>
<p>#endif /* _CREALWINDOW_H_ */<br />
[/code]</p>
<p>Wie organisiert Ihr euch damit Ihr den Überblick behaltet? Auch in der .cpp-Datei dann?<br />
Danke für die Hilfe <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="🙂"
    /><br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250587/organisation-von-code</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 19:41:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250587.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Sep 2009 03:04:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 03:04:52 GMT]]></title><description><![CDATA[<p>Tut mir leid für die Noob-Frage, aber ich habe ein Problem meinen Code zu organisieren. Damit meine ich nun nicht die Organisation von Dateien, sondern der Code in der Datei. Es sieht alles so unübersichtlich aus. Einrückungen etc mache ich, aber wenn ich eine Datei nach einigen Wochen wieder öffen, dann erstmal &quot;woah wall of text&quot;.<br />
Hier mal als ein Beispiel ein Header von mir:<br />
[cpp]<br />
#ifndef _CREALWINDOW_H_<br />
#define _CREALWINDOW_H_</p>
<p>#include &lt;windows.h&gt;<br />
#include &quot;MyProject.h&quot;<br />
#include &quot;WindowSettings.h&quot;</p>
<p>NAMESPACE_BEGIN</p>
<p>/*************************************************<br />
Real Window-Class<br />
*************************************************/<br />
class CRealWindow<br />
{<br />
public:<br />
explicit CRealWindow( CWindowSettings&amp; settings );<br />
~CRealWindow();<br />
bool isRunning();</p>
<p>private:<br />
/*--------- Members ---------*/<br />
CWindowSettings m_settings;<br />
HWND m_hwnd;<br />
HINSTANCE m_instance;<br />
bool m_running;</p>
<p>/*--------- Methods ---------<em>/<br />
bool createWindow();<br />
void destroyWindow();<br />
LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );<br />
static LRESULT CALLBACK sWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );<br />
static CRealWindow</em> GetObjectFromWindow(HWND hWnd);<br />
};</p>
<p>NAMESPACE_END</p>
<p>#endif /* _CREALWINDOW_H_ */<br />
[/code]</p>
<p>Wie organisiert Ihr euch damit Ihr den Überblick behaltet? Auch in der .cpp-Datei dann?<br />
Danke für die Hilfe <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="🙂"
    /><br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781951</guid><dc:creator><![CDATA[TheRookie26]]></dc:creator><pubDate>Mon, 21 Sep 2009 03:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 03:52:44 GMT]]></title><description><![CDATA[<p>cpp - Tags richtig gesetzt.</p>
<pre><code class="language-cpp">#ifndef _CREALWINDOW_H_
#define _CREALWINDOW_H_

#include &lt;windows.h&gt;
#include &quot;MyProject.h&quot;
#include &quot;WindowSettings.h&quot;

NAMESPACE_BEGIN

/*************************************************
Real Window-Class
*************************************************/
class CRealWindow
{
  public:
   explicit CRealWindow( CWindowSettings&amp; settings );
   ~CRealWindow();
   bool isRunning();

  private:
   /*--------- Members ---------*/
   CWindowSettings m_settings;
   HWND m_hwnd;
   HINSTANCE m_instance;
   bool m_running;

   /*--------- Methods ---------*/
   bool createWindow();
   void destroyWindow();
   LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
   static LRESULT CALLBACK sWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
   static CRealWindow* GetObjectFromWindow(HWND hWnd);
};

NAMESPACE_END
#endif /* _CREALWINDOW_H_ */
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1781952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781952</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Mon, 21 Sep 2009 03:52:44 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 05:00:08 GMT]]></title><description><![CDATA[<p>Die Kommentare sind völliger Quatsch. Das CRealWindow eine Klasse ist, sehe ich, also was bringt mir dann noch der Kommentar? Zeile 22 und 28 sind auch unnütz. Nicht beschreiben <strong>was</strong> es macht, sondern <strong>warum</strong> es was macht.</p>
<p><strong>1337!!!</strong> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781958</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Mon, 21 Sep 2009 05:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 04:59:40 GMT]]></title><description><![CDATA[<p>TheRookie26 schrieb:</p>
<blockquote>
<p>Wie organisiert Ihr euch damit Ihr den Überblick behaltet?</p>
</blockquote>
<p>So wie Du. Dein Code ist gut.<br />
(Außer Kleinigkeiten wie unerlaubtem Includeguard, UN, /**/-Kommentaren und diesem NAMESPACE, aber die haben ja nix mit der Übersicht zu tun.)</p>
<p>TheRookie26 schrieb:</p>
<blockquote>
<p>aber wenn ich eine Datei nach einigen Wochen wieder öffen, dann erstmal &quot;woah wall of text&quot;.</p>
</blockquote>
<p>Keine Regeln wie &quot;Nach Jeder Deklaration eine Leerzeile&quot; oder &quot;Vor Jeder Deklaration drei Zeilen Kommentar, die die Deklaration beschreiben&quot; oder &quot;Beim Lesen eines Semikolons einen Schnaps trinken&quot; können Dir helfen. Mußt halt flüssiger zu lesen lernen. Das es wird mit der Zeit von ganz allein besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781959</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 21 Sep 2009 04:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 06:54:50 GMT]]></title><description><![CDATA[<p>Bei mir sieht es so ähnlich aus, wie bei DeepCopy.<br />
Nur dass &quot;private&quot;, &quot;public&quot; und &quot;protected&quot; bei mir nicht eingerückt werden.<br />
Die Funktionen und Variablen sind immer 1 Tab ( 4 Zeichen ) eingerückt.<br />
Wenn es viele Funktionen sind, mach ich das auch manchmal so:</p>
<pre><code class="language-cpp">inline void         Funktion1  ( int a, int b )        { return bla; }
       unsigned int Funktion2  ( int c );
       double       Funktion22 ( int d, int e, int f );
</code></pre>
<p>Also sozusagen formatiert geschrieben <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="😉"
    /> ( wobei die &quot;inliner&quot; eigentlich bei mir immer nebeneinander liegen. )</p>
<p>Aber das ist eine reine Frage der Code-Ästhetik.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781987</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 21 Sep 2009 06:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:44:03 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Die Kommentare sind völliger Quatsch. Das CRealWindow eine Klasse ist, sehe ich, also was bringt mir dann noch der Kommentar? Zeile 22 und 28 sind auch unnütz. Nicht beschreiben <strong>was</strong> es macht, sondern <strong>warum</strong> es was macht.</p>
<p><strong>1337!!!</strong> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Nein, die Kommentare dienen hier zum strukturieren, kein völliger Quatsch sondern sinnvoll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782000</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:50:41 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Nein, die Kommentare dienen hier zum strukturieren, kein völliger Quatsch sondern sinnvoll.</p>
</blockquote>
<p>Ein Absatz oder zur Not auch zwei wären ausreichend Struktur gewesen. Dass das was danch kommt ember bzw. Methoden sind ist deutlich zu sehen. Daher sind die Kommentare an sich überflüssig und lenken nur vom Wesentlichen ab. Genauso wie Kommentare, die keine zusätzliche Information liefern, z.B.:</p>
<pre><code class="language-cpp">// Funktion, die den Saldo berechnet
int BerechneSaldo()
{
  //int-Variable für den Saldo
  //der Salo ist am Anfang null.
  int saldo = 0;

  //rechne jeden einzelnen Posten hinzu
  //die Anzahl der Posten ist in anzahlPosten gespeichert
  for (int i = 0; i &lt; anzahlPosten; ++i)
  {
    saldo += posten[i];
  }

  //saldo zurückgben
  return saldo;
}
</code></pre>
<p>Sowas ist völlig übeerflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782001</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:54:56 GMT]]></title><description><![CDATA[<p>Danke erstmal fürs korrigieren meiner Tags.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>:</p>
<blockquote>
<p>(Außer Kleinigkeiten wie unerlaubtem Includeguard, UN, /**/-Kommentaren und diesem NAMESPACE, aber die haben ja nix mit der Übersicht zu tun.)</p>
</blockquote>
<p>Also das NAMESPACE wird ja ersetzt vom Präprozessor, das ist so definiert:</p>
<pre><code class="language-cpp">#define NAMESPACE_BEGIN namespace MyProject {
#define NAMESPACE_END   }
</code></pre>
<p>Aber was meinst du mit unerlaubtem Include-Guard und UN?<br />
#pragma once geht ja nur mit VS2008 und ich möchte meinen Code portabel halten (soweit es geht).<br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782002</guid><dc:creator><![CDATA[TheRookie26]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:57:39 GMT]]></title><description><![CDATA[<p>TheRookie26 schrieb:</p>
<blockquote>
<p>Also das NAMESPACE wird ja ersetzt vom Präprozessor, das ist so definiert:</p>
<pre><code class="language-cpp">#define NAMESPACE_BEGIN namespace MyProject {
#define NAMESPACE_END   }
</code></pre>
</blockquote>
<p>Aber warum tust du das?</p>
<blockquote>
<p>Aber was meinst du mit unerlaubtem Include-Guard</p>
</blockquote>
<p>Bezeichner mit führendem Unterstrich sind für den Compiler reserviert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782005</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:58:42 GMT]]></title><description><![CDATA[<p>TheRookie26 schrieb:</p>
<blockquote>
<p>Also das NAMESPACE wird ja ersetzt vom Präprozessor, das ist so definiert:</p>
<pre><code class="language-cpp">#define NAMESPACE_BEGIN namespace MyProject {
#define NAMESPACE_END   }
</code></pre>
</blockquote>
<p>Und zu welchem Zweck? Dadurch sparst du nichtmal Tipparbeit, geschweige denn dass der Code daruch lesbarer wird. Im Gegenteil, hinter dem #define kann sich im Ernstfall alles mögliche verstecken. Stattdessen solltest du das einfach gleich richtig hinschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782006</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 07:59:25 GMT]]></title><description><![CDATA[<p>Registrierter Troll schrieb:</p>
<blockquote>
<p>TheRookie26 schrieb:</p>
<blockquote>
<p>Also das NAMESPACE wird ja ersetzt vom Präprozessor, das ist so definiert:</p>
<pre><code class="language-cpp">#define NAMESPACE_BEGIN namespace MyProject {
#define NAMESPACE_END   }
</code></pre>
</blockquote>
<p>Aber warum tust du das?</p>
</blockquote>
<p>warum nicht? Vor allem kann er sicher sein, dass es irgendwann nicht einen Namespace MyPorject gibt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782008</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 21 Sep 2009 07:59:25 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:00:18 GMT]]></title><description><![CDATA[<p>Registrierter Troll schrieb:</p>
<blockquote>
<blockquote>
<p>Aber was meinst du mit unerlaubtem Include-Guard</p>
</blockquote>
<p>Bezeichner mit führendem Unterstrich sind für den Compiler reserviert.</p>
</blockquote>
<p>Um genauer zu sein: Mit führendem Unterstrich und folgendem Großbuchstaben. Und alles was doppelte Unterstriche enthält ist auch reserviert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782009</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:00:18 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:08:24 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p>Registrierter Troll schrieb:</p>
<blockquote>
<p>TheRookie26 schrieb:</p>
<blockquote>
<p>Also das NAMESPACE wird ja ersetzt vom Präprozessor, das ist so definiert:</p>
<pre><code class="language-cpp">#define NAMESPACE_BEGIN namespace MyProject {
#define NAMESPACE_END   }
</code></pre>
</blockquote>
<p>Aber warum tust du das?</p>
</blockquote>
<p>warum nicht? Vor allem kann er sicher sein, dass es irgendwann nicht einen Namespace MyPorject gibt</p>
</blockquote>
<p>Spaetestens wenn er etwas aus MyPorject benutzen will merkt er das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782011</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:08:24 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:12:16 GMT]]></title><description><![CDATA[<p>zwutz schrieb:</p>
<blockquote>
<p>warum nicht?</p>
</blockquote>
<p>Weil es eine Indirektion hinzufügt. Wenn ich den Code benutzen will, muss ich erst nachschlagen, was in dem Makro drinsteht.<br />
Würde das Makro irgendwann geändert, wäre der Client-Code kaputt. Kommen weitere namespaces hinzu, ist der Makroname nicht mehr eindeutig, dann gibt es irgendwann <code>BEGIN_NAMESPACE1</code> bis <code>BEGIN_NAMESPACE17</code> .</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Um genauer zu sein: Mit führendem Unterstrich und folgendem Großbuchstaben.</p>
</blockquote>
<p>Um <em>noch genauer</em> zu sein:</p>
<p>17.4.3.1.2 schrieb:</p>
<blockquote>
<p>Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1782013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782013</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:32:57 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Nein, die Kommentare dienen hier zum strukturieren, kein völliger Quatsch sondern sinnvoll.</p>
</blockquote>
<p>Ein Absatz oder zur Not auch zwei wären ausreichend Struktur gewesen. Dass das was danch kommt ember bzw. Methoden sind ist deutlich zu sehen. Daher sind die Kommentare an sich überflüssig und lenken nur vom Wesentlichen ab. Genauso wie Kommentare, die keine zusätzliche Information liefern, z.B.:</p>
<pre><code class="language-cpp">// Funktion, die den Saldo berechnet
int BerechneSaldo()
{
  //int-Variable für den Saldo
  //der Salo ist am Anfang null.
  int saldo = 0;
 
  //rechne jeden einzelnen Posten hinzu
  //die Anzahl der Posten ist in anzahlPosten gespeichert
  for (int i = 0; i &lt; anzahlPosten; ++i)
  {
    saldo += posten[i];
  }

  //saldo zurückgben
  return saldo;
}
</code></pre>
<p>Sowas ist völlig übeerflüssig.</p>
</blockquote>
<p>Unsinn, die Kommentare werden hier ja nicht zur Kommentierung verwendet, sondern teilen das Interface logisch auf und dienen als Hinweis für (u.A.) andere Entwickler die Struktur beizubehalten und das ist keinenfalls überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782017</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:44:52 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Nein, die Kommentare dienen hier zum strukturieren, kein völliger Quatsch sondern sinnvoll.</p>
</blockquote>
<p>Ein Absatz oder zur Not auch zwei wären ausreichend Struktur gewesen. Dass das was danch kommt ember bzw. Methoden sind ist deutlich zu sehen. Daher sind die Kommentare an sich überflüssig und lenken nur vom Wesentlichen ab. Genauso wie Kommentare, die keine zusätzliche Information liefern, z.B.:</p>
<pre><code class="language-cpp">// Funktion, die den Saldo berechnet
int BerechneSaldo()
{
  //int-Variable für den Saldo
  //der Salo ist am Anfang null.
  int saldo = 0;
 
  //rechne jeden einzelnen Posten hinzu
  //die Anzahl der Posten ist in anzahlPosten gespeichert
  for (int i = 0; i &lt; anzahlPosten; ++i)
  {
    saldo += posten[i];
  }

  //saldo zurückgben
  return saldo;
}
</code></pre>
<p>Sowas ist völlig übeerflüssig.</p>
</blockquote>
<p>Unsinn, die Kommentare werden hier ja nicht zur Kommentierung verwendet, sondern teilen das Interface logisch auf und dienen als Hinweis für (u.A.) andere Entwickler die Struktur beizubehalten und das ist keinenfalls überflüssig.</p>
</blockquote>
<p>Kommentare sollen das beinhalten was nicht offensichtlich ist. So ein Quatsch wie</p>
<pre><code class="language-cpp">//saldo zurückgben
  return saldo;
</code></pre>
<p>hilft niemanden. Zuviele solcher Kommentare sind sogar ausgesprochen kontraproduktiv weil so der eine, wichtige KOmmentar unter hunderten Trivialkommentaren untergeht.</p>
<p>Kommentare sollen, wie schon andere gesagt haben, das WARUM kommentieren, nicht das WIE, denn das WIE ist idr bereits durch den Sourcecode selbst ausreichend sichtbar. Wenn der Sourcecode so unleserlich ist das er zusätzliche KOmmentare braucht ist etwas anderes faul. Beispiel:</p>
<pre><code class="language-cpp">int vXpr23iV;  // Variable um die Länge des Usernamens zu speichern
</code></pre>
<p>An der Stelle ist der Kommentar zwar tatsächlich notwendig im die Variable zu verstehen, aber auch nur weil die Benennung der Variablen schei ße ist.</p>
<pre><code class="language-cpp">int laengeUsername;
</code></pre>
<p>Gleiche Funktionalität, aber auch ohne Kommentar zu verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782019</guid><dc:creator><![CDATA[loks]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:44:52 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:52:17 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Unsinn, die Kommentare werden hier ja nicht zur Kommentierung verwendet, sondern teilen das Interface logisch auf und dienen als Hinweis für (u.A.) andere Entwickler die Struktur beizubehalten und das ist keinenfalls überflüssig.</p>
</blockquote>
<p>Interface?!? Das sind Kommentare in einer Funktion, sie kommentieren die einzelnen Rechenschritte. Ich hab mal gelernt, dass Kommentare so weit wie möglich vermieden werden sollen, vielmehr sollen Namen (für Klassen/Methoden/Variablen) sprechend sein.<br />
Außerdem finde ich es fragwürdig, wenn Kommentare dem Entwickler vorschreiben sollen, wie ein Algorithmus zu funktionieren hat.</p>
<p>In dem von dir zitierten Beispiel sind die Kommentare mehr als überflüssig.</p>
<p>Und die Unterteilung des OP kann man sich schenken, wenn man im Interface zu allererst Konstruktoren, dann den public Teil (für Verwendung der Klasse), dann protected (für Ableiten), dann private angibt. So sollte gewährleistet werden, dass jede Interessengrupee schnellstmöglichst ans Ziel gelangt. Rein ohne Kommentare.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782025</guid><dc:creator><![CDATA[toter hahn]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:52:17 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 08:58:00 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Unsinn, die Kommentare werden hier ja nicht zur Kommentierung verwendet, sondern teilen das Interface logisch auf und dienen als Hinweis für (u.A.) andere Entwickler die Struktur beizubehalten und das ist keinenfalls überflüssig.</p>
</blockquote>
<p>Und jeder Entwickler der sich den Code länger als eine Sekunde anschaut sieht die Unterteilung auch ohne Kommentar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782027</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Sep 2009 08:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 09:13:45 GMT]]></title><description><![CDATA[<p>Niemals C++-Sprachelemente wie &quot;{&quot; durch defines ersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782037</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Mon, 21 Sep 2009 09:13:45 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 09:32:47 GMT]]></title><description><![CDATA[<p>@ loks &amp; toter hahn: Erstmal lesen und dann schreiben...</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Unsinn, die Kommentare werden hier ja nicht zur Kommentierung verwendet, sondern teilen das Interface logisch auf und dienen als Hinweis für (u.A.) andere Entwickler die Struktur beizubehalten und das ist keinenfalls überflüssig.</p>
</blockquote>
<p>Und jeder Entwickler der sich den Code länger als eine Sekunde anschaut sieht die Unterteilung auch ohne Kommentar.</p>
</blockquote>
<p>Erfahrungsgemäß ist das aber leider <em>nicht</em> der Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782044</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Sep 2009 09:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 09:42:57 GMT]]></title><description><![CDATA[<p>wir reden hier von absolut offensichtlichem Sourcecode, der nicht kompliziert verschaltet ist und auch keine 2,3516 mio Unterfunktionen aufruft.</p>
<p>Ich handhabe das immer so, dass ich vor einem größeren komplexen Block von Funktionalität einige Zeilen Kommentare schreibe, die grob verdeutlichen sollen, was der folgende Block macht. Das reicht meiner Meinung nach.</p>
<p>Funktionen bekommen natürlich auch immer einen Kommentar, der die Aufgabe der Funktion beschreibt. ( möglichst einzeilig )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782050</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 21 Sep 2009 09:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 10:25:02 GMT]]></title><description><![CDATA[<p>It0101 schrieb:</p>
<blockquote>
<p>Funktionen bekommen natürlich auch immer einen Kommentar, der die Aufgabe der Funktion beschreibt. ( möglichst einzeilig )</p>
</blockquote>
<p>Wenn die Funktion einen genügend aussagekräftigen Namen hat, erübrigt sich selbst das häufig.</p>
<blockquote>
<p>Ich handhabe das immer so, dass ich vor einem größeren komplexen Block von Funktionalität einige Zeilen Kommentare schreibe, die grob verdeutlichen sollen, was der folgende Block macht. Das reicht meiner Meinung nach.</p>
</blockquote>
<p>Wenn du den komplexen Block in eine eigene Funktion mit srechendem Namen auslagerst, erübrigen sich häufig auch die Block-Erläuterungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782068</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Sep 2009 10:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 10:54:37 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>@ loks &amp; toter hahn: Erstmal lesen und dann schreiben...</p>
</blockquote>
<p>Dann solltest du mal erst ordentlich zitieren. Ein Fullquote hindonnern und allgemein über &quot;hier&quot; sprechen (was jeder auf den zitierten Code-Abschnitt bezieht), gleichzeitig von &quot;Interface aufteilen&quot; und &quot;Struktur beibehlaten&quot; reden, wo nur ne simple Funktion zu sehen ist.<br />
Wunder dich also nicht...</p>
<p>Außerdem springt - dank Syntax-Highlighting - ein &quot;public&quot; oder &quot;private&quot; sofort ins Auge. Da braucht man nicht noch nen verschlimmbessernden Kommentar.</p>
<p>Und wenn von &quot;anderen Programmierern&quot; die Rede ist, ist es ein größeres Projekt, und die haben eine &quot;Coding-Guideline&quot;. Wer gegen die Guideline verstößt kann abgemahnt und später im svn (oder anderes Versionsverwaltungssysetm) Schreibrechtentzug bekommen.</p>
<p>Es gibt (fast) immer effektivere Lösungen als Kommentare im Source.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782077</guid><dc:creator><![CDATA[toter hahn]]></dc:creator><pubDate>Mon, 21 Sep 2009 10:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 11:12:10 GMT]]></title><description><![CDATA[<p>Anderes Thema. Un -&gt; Ungarische Notation. Jetzt kannste googlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782090</guid><dc:creator><![CDATA[Tyrdal]]></dc:creator><pubDate>Mon, 21 Sep 2009 11:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 12:04:41 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<blockquote>
<p>Ich handhabe das immer so, dass ich vor einem größeren komplexen Block von Funktionalität einige Zeilen Kommentare schreibe, die grob verdeutlichen sollen, was der folgende Block macht. Das reicht meiner Meinung nach.</p>
</blockquote>
<p>Wenn du den komplexen Block in eine eigene Funktion mit sprechendem Namen auslagerst, erübrigen sich häufig auch die Block-Erläuterungen.</p>
</blockquote>
<p>Im schlimmsten Fall hat man dann 20 weitere private Funktionen in der Klasse, die nur einmal in einer anderen Funktion aufgerufen werden.</p>
<p>Das mache ich echt nur, wenn die Funktion wirklich zu groß ist. Funktionen versuche ich, wenn möglich immer komplett im sichtbaren Bereich zu halten. D.h. wenn ich die Hälfte der Funktion nicht ins Fenster kriege, wird es zeit 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>
]]></description><link>https://www.c-plusplus.net/forum/post/1782135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782135</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 21 Sep 2009 12:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Organisation von Code on Mon, 21 Sep 2009 21:46:16 GMT]]></title><description><![CDATA[<p>It0101 schrieb:</p>
<blockquote>
<p>Ich handhabe das immer so, dass ich vor einem größeren komplexen Block von Funktionalität einige Zeilen Kommentare schreibe, die grob verdeutlichen sollen, was der folgende Block macht. Das reicht meiner Meinung nach.</p>
<p>Funktionen bekommen natürlich auch immer einen Kommentar, der die Aufgabe der Funktion beschreibt. ( möglichst einzeilig )</p>
</blockquote>
<p>Handhabe ich weitgehend gleich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Mehrzeilige Funktionskommentare à la Javadoc sind mir zu mühsam für alltäglichen Code (für Dokumentationen von Bibliotheken können sie nützlich sein). Aber oft überschneiden sich allgemeine Beschreibung, Parameter und Rückgabetyp, sodass zwei Drittel des Kommentars redundant ist.</p>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Wenn du den komplexen Block in eine eigene Funktion mit srechendem Namen auslagerst, erübrigen sich häufig auch die Block-Erläuterungen.</p>
</blockquote>
<p>Teilweise schon, aber so einfach ist das nicht immer. Oft macht eine Funktion kompliziertere Dinge, die nicht in einen brauchbaren Bezeichner gefasst werden können. Oder es gibt besondere Hinweise, die zu beachten sind. Irgendwo bringt es auch nichts mehr, weiter aufzuteilen, dann schreibt man lieber einen Kommentar hin, dafür hat die Funktion eine richtige Aufgabe. Ich stehe zumindest nicht auf zig kleine Zweizeilerfunktionen, von denen man jeweils 5 gemeinsam anschauen muss, bis überhaupt ein abstraktionswerter Gedanke ersichtlich ist. <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>Tyrdal schrieb:</p>
<blockquote>
<p>Anderes Thema. Un -&gt; Ungarische Notation. Jetzt kannste googlen.</p>
</blockquote>
<p>Zur UN habe ich mal <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1773551.html#1773551" rel="nofollow">etwas</a> geschrieben. <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/1782438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782438</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 21 Sep 2009 21:46:16 GMT</pubDate></item></channel></rss>