<?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[Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben?]]></title><description><![CDATA[<p>Hallo liebes Forum,</p>
<p>ich bin gerade an meinem ersten &quot;großen&quot; Hobby Projekt.</p>
<p>Ich habe eine Klasse geschrieben die mir Bilder verwaltet. Jede Instanz repräsentiert ein Bild. Jetzt frage ich mich, ob es sinnvoll ist bei der Zuweisung im Quellcode immer &quot;this-&gt;&quot; vor die Variablen zu schreiben auch wenn es vielleicht gar nicht nötig wäre, nur um zu zeigen das es sich tatsächlich auch auf das Objekt bezieht. Was meint ihr?</p>
<p>Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/314769/klasse-überall-quot-this-gt-quot-vorkleben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 13:56:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/314769.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Mar 2013 11:24:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 11:24:49 GMT]]></title><description><![CDATA[<p>Hallo liebes Forum,</p>
<p>ich bin gerade an meinem ersten &quot;großen&quot; Hobby Projekt.</p>
<p>Ich habe eine Klasse geschrieben die mir Bilder verwaltet. Jede Instanz repräsentiert ein Bild. Jetzt frage ich mich, ob es sinnvoll ist bei der Zuweisung im Quellcode immer &quot;this-&gt;&quot; vor die Variablen zu schreiben auch wenn es vielleicht gar nicht nötig wäre, nur um zu zeigen das es sich tatsächlich auch auf das Objekt bezieht. Was meint ihr?</p>
<p>Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306372</guid><dc:creator><![CDATA[Telk]]></dc:creator><pubDate>Wed, 13 Mar 2013 11:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 11:26:17 GMT]]></title><description><![CDATA[<p>Ich meine: Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306373</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 13 Mar 2013 11:26:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 11:40:34 GMT]]></title><description><![CDATA[<p>Definitiv nein. Das sollte auch so erkenntlich sein, wenn der Code nicht viel zu komplex ist. Ich verwende this nur bei Namenskonflikten wie z.B. bei Methoden, die gleichnamige Parameter haben. Ansonsten stört das nur den Lesefluss und ist mehr Schreibarbeit.</p>
<p>Edit: Um keinen neuen Post zu machen: *lynch Skym0sh0*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306374</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 13 Mar 2013 11:40:34 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 11:32:27 GMT]]></title><description><![CDATA[<p>Ich schreibs immer wo geht hin. Hilft mir zu verstehen, dass die angesprochene Entität von dem Objekt selbst ist.</p>
<p>Ich doppel-moppel das auch noch indem ich vor jede Membervariable &quot;m_&quot; schreibe:</p>
<pre><code>this-&gt;m_recursiveImage;
</code></pre>
<p>Aber ist Geschmackssache wie ich finde.</p>
<p>(Hier im Forum lynchen mich eh alle dafür :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306375</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 13 Mar 2013 11:32:27 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 11:37:58 GMT]]></title><description><![CDATA[<p>Danke für den schnellen Input <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="🙂"
    /> ! Hat mir sehr geholfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306376</guid><dc:creator><![CDATA[Telk]]></dc:creator><pubDate>Wed, 13 Mar 2013 11:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 12:17:56 GMT]]></title><description><![CDATA[<p>der Compiler bedankt sich für &quot;this-&gt;&quot;, es hilft ihm beim name lookup, siehe ISO/IEC 14882:2011 3.4 Name lookup S. 45 - 59 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306389</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Wed, 13 Mar 2013 12:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 12:58:09 GMT]]></title><description><![CDATA[<p>Eigentlich bin ich weder ein Freund von einem speziellen Member-Präfix (wie &quot;m_&quot;) noch finde ich &quot;this-&gt;&quot; sonderlich schön. Wenn aber das Projekt eines von beiden Vorgeben würde, wäre meine Wahl eher &quot;this-&gt;&quot;.</p>
<p>Ich verwende in privaten Projekten this-&gt; nur bei Namenskonflikten zwischen Übergabeparametern und Membervariablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306395</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 13 Mar 2013 12:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 14:52:39 GMT]]></title><description><![CDATA[<p>Ich verwende konsequent <code>mMemberVariable</code> . Ganz selten <code>this-&gt;</code> , wenn ich in Templates auf Basisklassenmember zugreifen muss. Meist sind das dann aber Funktionen...</p>
<p><code>this-&gt;m_memberVariable</code> ist wirklich sinnlos. Etwa gleich wie <code>return (expression);</code> oder <code>if (a == true)</code> . Es macht Ausdrücke unnötig kompliziert und verwirrt Leute.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306421</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 13 Mar 2013 14:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 15:43:10 GMT]]></title><description><![CDATA[<p>Wie schreibt ihr nicht:</p>
<pre><code>if ( (a &lt; 5) == true)
    ;
</code></pre>
<p>?<br />
SCNR</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@topic</a>:<br />
Ich verwende auch nie this-&gt;. Membervariablen enden bei mir mit einem Unterstrich.<br />
position_, count_, etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306431</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 13 Mar 2013 15:43:10 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 16:00:16 GMT]]></title><description><![CDATA[<p>Bei dem _ hatte ich mal den Fehler, dass ich da stehen hatte:</p>
<pre><code class="language-cpp">bla = bla;
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">bla_ = bla;
</code></pre>
<p>Wenn ich wüsste, dass der Parameter gleichnamig ist, hätte ich ohne _ das this genommen.</p>
<p>Natürlich eigene Blödheit, aber ich habe eine halbe Stunde oder so nach dem Fehler gesucht, weil der _ so unauffälig ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Seitdem mag ich das nicht mehr. Klassenmember heißen so wie sie heißen. Seit ich das so mache, hatte ich noch nie Konfusion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306433</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 13 Mar 2013 16:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 16:01:21 GMT]]></title><description><![CDATA[<p>Eben deshalb verwende ich das ja.<br />
m_variable oder this-&gt;variable oder gar this-&gt;m_variable stört m.M. nach den Lesefluss.<br />
Da habe ich lieber so ein unauffälliges _.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306434</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 13 Mar 2013 16:01:21 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 16:05:28 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Natürlich eigene Blödheit, aber ich habe eine halbe Stunde oder so nach dem Fehler gesucht</p>
</blockquote>
<p>Dein Compiler sollte dich bei soetwas warnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306436</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 13 Mar 2013 16:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 16:15:32 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Eben deshalb verwende ich das ja.<br />
m_variable oder this-&gt;variable oder gar this-&gt;m_variable stört m.M. nach den Lesefluss.</p>
</blockquote>
<p>Darum nehme ich ja <code>mVariable</code> -- gleiche Konvention wie für alle andere Variablen, nur beginnend mit &quot;m&quot; <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>Nathan schrieb:</p>
<blockquote>
<p>Da habe ich lieber so ein unauffälliges _.</p>
</blockquote>
<p>Neben der Übersehbarkeit würde mich hier stören, dass der Unterstrich bei Operatoren schnell untergeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306440</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 13 Mar 2013 16:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 17:07:59 GMT]]></title><description><![CDATA[<p>Ich schreibe weder &quot;this-&gt;&quot;, noch haben meine Membervariablen irgendeine Kennung wie &quot;<em>&quot;, &quot;m&quot;, &quot;m</em>&quot; oder was auch immer. Hab auch noch nie den Sinn darin gesehen. Als ein Argument für ein Präfix wird gerne verwendet, dass Intellisense nach dem Tippen des Präfix nur noch Member anzeigt. Toll, bis ich &quot;m_&quot; geschrieben habe, hat ich mit Intellisense schon den korrekten Member ausgewählt, wenn ich kein Präfix benutze. Weiterhin soll ein Prä- oder Suffix angeblich die Übersichtlichkeit erhöhen, welche Variablen lokal sind und welche zur Klasse gehören. Nun, meine Scopes sind außer bei schlampig programmierter Write-Only-Software klein genug, dass ich die Übersicht sowieso nicht verliere. Dann gibt es noch das Argument der gleichnamigen Parameter bei Konstruktoren und Settern. Letztere hab ich eigentlich sowieso nicht. Die Konstruktorargumente brauche ich genau einmal zum Initialisieren der Member. Daher bekommen auch die Konstruktorargumente den abschließenden Unterstrich und nicht die Member.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306448</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 13 Mar 2013 17:07:59 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 17:22:50 GMT]]></title><description><![CDATA[<p>+1 Michael E., bis auf eins:</p>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Die Konstruktorargumente brauche ich genau einmal zum Initialisieren der Member. Daher bekommen auch die Konstruktorargumente den abschließenden Unterstrich und nicht die Member.</p>
</blockquote>
<p>Weil ich die Member eigentlich ausschliesslich in der Initialisierungsliste initialisiere, kann ich die Parameter auch genau gleich benennen wie sie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306451</guid><dc:creator><![CDATA[pluseins]]></dc:creator><pubDate>Wed, 13 Mar 2013 17:22:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 17:25:24 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>+1 <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2306452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306452</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 13 Mar 2013 17:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 17:59:09 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Nathan schrieb:</p>
<blockquote>
<p>Eben deshalb verwende ich das ja.<br />
m_variable oder this-&gt;variable oder gar this-&gt;m_variable stört m.M. nach den Lesefluss.</p>
</blockquote>
<p>Darum nehme ich ja <code>mVariable</code> -- gleiche Konvention wie für alle andere Variablen, nur beginnend mit &quot;m&quot; <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>
</blockquote>
<p>Ist ja schön und gut.<br />
Ich nutze die Konvention mit_unterstrichen. Da wäre m_ logischerweise notwendig. m_ ist mir jedoch wieder zuviel Tipparbeit. Also nehme ich nur den Unterstrich. Der sollte allerdings wegen Reserviertheit und so ans Ende. Also _.<br />
Und was hast du gegen:</p>
<pre><code>position_.x += speed_ * cur_dir_;
</code></pre>
<p>? Ja, ok, position_-&gt; bzw. position_. sieht seltsam aus.<br />
Allerdings ist das für mich die beste Alternative.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306459</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 13 Mar 2013 17:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 18:05:53 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Also nehme ich nur den Unterstrich. Der sollte allerdings wegen Reserviertheit und so ans Ende.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>reserved in any scope:</p>
<ol>
<li>Bezeichner, die '__' enthalten.</li>
<li>Bezeichner, die mit '_' beginnen und dann ein Großbuchstabe folgt.</li>
</ol>
<p>-reserved in global scope:<br />
3) Globale Bezeichner, die mit '_' beginnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306461</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 13 Mar 2013 18:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 18:45:16 GMT]]></title><description><![CDATA[<p>In Sprachen wie Java, Python, JavaScript,... wuerde nie jemand auf die Idee kommen Member speziell zu kennzeichnen.</p>
<p>Lasst die ungarische Notation bitte endlich sterben. Denn das ist nichts anderes als ein ueberbleibsel aus der C Zeit wo wir ungarische Notation als sinnvoll angesehen haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306466</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 13 Mar 2013 18:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 19:59:16 GMT]]></title><description><![CDATA[<blockquote>
<p>C++ wurde entworfen, um Datenabstraktion, objektorientiertes Programmieren und generisches Programmieren zusätzlich zu den traditionellen C-Programmiertechniken mit diesen Einschränkungen zu unterstützen. Es war <em>nicht</em> die Absicht, allen Benutzern einen bestimmten Programmierstil aufzuzwingen.</p>
</blockquote>
<p>Bjarne Stroustrup</p>
<p><a href="http://books.google.de/books?id=KW1F9GPUFjkC&amp;lpg=PA24&amp;ots=znYX_J9FEs&amp;hl=de&amp;pg=PA24#v=onepage&amp;q&amp;f=false" rel="nofollow">http://books.google.de/books?id=KW1F9GPUFjkC&amp;lpg=PA24&amp;ots=znYX_J9FEs&amp;hl=de&amp;pg=PA24#v=onepage&amp;q&amp;f=false</a></p>
<p>... wenn jemand gern ungarisch schreibt, soll er ungarisch schreiben. und wenn jemand gern spanisch schreibt, soll er spanisch schreiben ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306481</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Wed, 13 Mar 2013 19:59:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 20:26:55 GMT]]></title><description><![CDATA[<p>dd++ schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Es gibt einen Unterschied zwischen Programmierstil und Benamsung.<br />
Und mit ungarisch ist nicht <a href="http://en.wikipedia.org/wiki/Hungary" rel="nofollow">Ungarn</a> sondern <a href="http://en.wikipedia.org/wiki/Hungarian_notation" rel="nofollow">UN</a> gemeint.</p>
<p>Bjarne Stroustrup schrieb:</p>
<blockquote>
<p>No I don't recommend &quot;Hungarian&quot;. I regard &quot;Hungarian&quot; (embedding an abbreviated version of a type in a variable name) a technique that can be useful in untyped languages, but is completely unsuitable for a language that supports generic programming and object-oriented programming—both of which emphasize selection of operations based on the type an arguments (known to the language or to the run-time support). In this case, &quot;building the type of an object into names&quot; simply complicates and minimizes abstraction.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2306488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306488</guid><dc:creator><![CDATA[rm -f dd]]></dc:creator><pubDate>Wed, 13 Mar 2013 20:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 20:31:39 GMT]]></title><description><![CDATA[<p>Live and Let Die</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306490</guid><dc:creator><![CDATA[rm -rf Unregistrierter]]></dc:creator><pubDate>Wed, 13 Mar 2013 20:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Wed, 13 Mar 2013 20:50:29 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Nun, meine Scopes sind außer bei schlampig programmierter Write-Only-Software klein genug, dass ich die Übersicht sowieso nicht verliere. Dann gibt es noch das Argument der gleichnamigen Parameter bei Konstruktoren und Settern. Letztere hab ich eigentlich sowieso nicht.</p>
</blockquote>
<p>Ist ja schön, dass du alles im Blick hast. Aber scheint auch ein wenig idealistisch; wie weit man ohne Setter kommt, haben wir auch erst kürzlich besprochen. Im Grossen und Ganzen klingt die Argumentation wie &quot;ich brauche kein const, da ich im Blick habe, welche Variablen ich verändern darf&quot;.</p>
<p>Aber statt das Offensichtliche zu sagen, nämlich dass es auch ohne m-Präfixe geht, wären Gegenargumente hilfreich. Mir persönlich half m nämlich, Code übersichtlicher zu machen -- ich behaupte nicht, das träfe auf alle Leute zu, aber versuche meine Ansicht nachvollziehbar zu machen. Jedoch gehöre ich auch nicht zu den Leuten, die kategorisch keine Funktionen mit mehr als 3 Parametern oder 15 Zeilen schreiben.</p>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>In Sprachen wie Java, Python, JavaScript,... wuerde nie jemand auf die Idee kommen Member speziell zu kennzeichnen.</p>
</blockquote>
<p>Es liegt in der Natur von Java, auf weniger Ideen zu kommen. Im Gegensatz zu C++ existiert ein etablierter Codestil, was Bezeichner angeht -- natürlich wird dann weniger herumexperimentiert.</p>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Lasst die ungarische Notation bitte endlich sterben. Denn das ist nichts anderes als ein ueberbleibsel aus der C Zeit wo wir ungarische Notation als sinnvoll angesehen haben.</p>
</blockquote>
<p>Schade, dass ihr wieder mal alles in einen Topf werft. Bei UN ging es darum, <em>Typen</em> kennzuzeichnen. Hier ist aber die Rede von Zugehörigkeit zum Objektzustand. Entsprechend treffen die Nachteile der UN, die ich übrigens schon mehrfach in aller Ausführlichkeit aufgezählt habe, <em>nicht</em> auf das m-Präfix zu.</p>
<p>Bitte die Dinge etwas differenzierter sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306501</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 13 Mar 2013 20:50:29 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Thu, 14 Mar 2013 11:08:09 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>In Sprachen wie Java, Python, JavaScript,... wuerde nie jemand auf die Idee kommen Member speziell zu kennzeichnen.</p>
</blockquote>
<p>Es liegt in der Natur von Java, auf weniger Ideen zu kommen. Im Gegensatz zu C++ existiert ein etablierter Codestil, was Bezeichner angeht -- natürlich wird dann weniger herumexperimentiert.</p>
</blockquote>
<p>Es existiert mehr Code in nicht-C++ als in C++.<br />
Es wird mehr in nicht-C++ herumexperimentiert als in C++.</p>
<p>Ich rede von <strong>jeder</strong> modernen Sprache. Egal welche. Ruby? PHP? Python? C#? Go? ... Die Liste ist unendlich lang.</p>
<p>Memberqualifizierung ist ein altes Relikt. In C++ hält man daran fest, wie man vielem alten festhält. Denk einfach darüber nach warum keine einzige moderne Sprache memberqualifzierungen verwendet. Keine einzige.</p>
<p>Es funktioniert nämlich nicht. Du hast soviele Scopes und du suchst dir jetzt einen dieser Scopes (Klasse) aus um die Variablen diesen Scopes zu Kennzeichnen.</p>
<p>Dabei hast du:<br />
Globale Variablen<br />
statische Klassen Variablen<br />
Instanz Variablen<br />
und N Stufen Funktionslokale Variablen (denke an Closures).</p>
<p>Wenn wir jetzt lokale Klassen dazu nehmen würden, wird das ganze noch komplexer.</p>
<p>Aber du hast auch ohne dem allen eine inkonsistenz: Template Parameter. Kennzeichnest du diese auch? Sie sind ja Member der Klasse. Und die gibt es auch schon wieder auf Klassen Ebene und N Funktionsebenen.</p>
<p>Du hast jetzt zufällig einen Scope ausgewählt und sagst: das Kennzeichnen der Variablen in diesem Scope ist sinnvoll.</p>
<p>Warum dann nicht in allen Scopes? Warum nur der eine?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306620</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 14 Mar 2013 11:08:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Thu, 14 Mar 2013 11:31:06 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Ich rede von <strong>jeder</strong> modernen Sprache. Egal welche. Ruby? PHP? Python? C#? Go? ... Die Liste ist unendlich lang. [...] Denk einfach darüber nach warum keine einzige moderne Sprache memberqualifzierungen verwendet. Keine einzige.</p>
</blockquote>
<p>Das stimmt so nicht ganz. In Ruby werden Membervariablen mit einem &quot;@&quot; gekennzeichnet. Da ist die Lage aber wiederum anders als in C++ und ich denke auch nicht vergleichbar. Denn in Ruby kann ich Variablen benutzen, ohne sie vorher zu definieren. Daher brauche ich auch ein Mittel, um bei einem vorher unbekannten Namen signalisieren zu können, welchen Scope die Variable hat.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>wie weit man ohne Setter kommt, haben wir auch erst kürzlich besprochen.</p>
</blockquote>
<p>Ich habe die Diskussion nur am Rande verfolgt, aber das Fazit war glaube ich, dass reine dumme Setter im engeren Sinne kaum einer benutzt.</p>
<blockquote>
<p>Im Grossen und Ganzen klingt die Argumentation wie &quot;ich brauche kein const, da ich im Blick habe, welche Variablen ich verändern darf&quot;.</p>
</blockquote>
<p>Vorsicht, ganz andere Baustelle. Man kann Klassen und dazugehörige Memberfunktionen so schreiben, dass man die Übersicht über die definierten Variablen behält. Das ist eine lokale Sache und wie ich private Member benenne, geht niemanden außerhalb der Klasse etwas an. Wenn ich aber auf const verzichte, hat das globale Auswirkungen. Objekte werden von einem Ende der Applikation zum anderen Ende übergeben. Hier versuche ich, eine möglichst aussagekräftige Schnittstelle der Klasse zur Außenwelt herzustellen, die mitteilt, ob und wie an die Klasse übergebene Parameter geändert werden können. Die Benennung von Membervariablen ist also eine lokale Angelegenheit innerhalb der Klasse, während die Benutzung von const gerade für die Schnittstelle nach außen in die große weite Welt gebraucht wird.</p>
<blockquote>
<p>Aber statt das Offensichtliche zu sagen, nämlich dass es auch ohne m-Präfixe geht, wären Gegenargumente hilfreich.</p>
</blockquote>
<p>Präfixe sind potthässlich und Intellisense liefert mir schneller den Namen, den ich suche. Das reicht mir Begründung :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306624</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 14 Mar 2013 11:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse: Überall &amp;quot;this-&amp;gt;&amp;quot; vorkleben? on Thu, 14 Mar 2013 11:59:03 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Es funktioniert nämlich nicht. Du hast soviele Scopes und du suchst dir jetzt einen dieser Scopes (Klasse) aus um die Variablen diesen Scopes zu Kennzeichnen.</p>
</blockquote>
<p>Der Member-Scope ist neben lokalen Variablen aber der am häufigsten benutzte, und nicht willkürlich einer gewählt. Daher ist mit m-Präfixen schon ein grosser Schritt getan. Allerdings hast du recht, konsequenterweise müsste man auch globale Variablen mit <code>g</code> und statische mit <code>s</code> kennzeichnen, allerdings kommen diese ohnehin recht selten vor.</p>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>und N Stufen Funktionslokale Variablen (denke an Closures).</p>
</blockquote>
<p>Meinst du Lambda-Ausdrücke? Wo hast du da eine neue Scopekategorie? Sowohl inner- als auch ausserhalb sind für mich lokale Variablen. Nur werden die Funktionen halt zu unterschiedlichen Zeitpunkten aufgerufen. Aber wahrscheinlich habe ich dich hier falsch verstanden...</p>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Aber du hast auch ohne dem allen eine inkonsistenz: Template Parameter. Kennzeichnest du diese auch? Sie sind ja Member der Klasse.</p>
</blockquote>
<p>Nein, sie sind &quot;Member&quot; des Templates. Sobald du auf der Ebene der Klasse bist, hast du eine Instanziierung, damit gibt es keine Templateparameter mehr. Da dies meist Typen sind, schreibe ich sie in <code>PascalCase</code> (sofern sie überhaupt länger als ein Buchstabe sind).</p>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Ich habe die Diskussion nur am Rande verfolgt, aber das Fazit war glaube ich, dass reine dumme Setter im engeren Sinne kaum einer benutzt.</p>
</blockquote>
<p>Ja, meist gilt das. Komplett ohne kommt man aber nicht aus. Und teilweise sind auch &quot;dumme&quot; Getter sinnvoll, siehe z.B. <a href="http://www.sfml-dev.org/documentation/2.0/classsf_1_1Sprite.php" rel="nofollow">sf::Sprite</a>.</p>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Die Benennung von Membervariablen ist also eine lokale Angelegenheit innerhalb der Klasse, während die Benutzung von const gerade für die Schnittstelle nach außen in die große weite Welt gebraucht wird.</p>
</blockquote>
<p>Das stimmt, aber du kannst das gleiche Argument auf const-qualifizierte lokale Variablen anwenden. Diese sind ebenfalls Implementierungsdetails, trotzdem können sie Fehler innerhalb der Funktion vermeiden -- auch wenn man Funktionen übersichtlich schreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2306628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2306628</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 14 Mar 2013 11:59:03 GMT</pubDate></item></channel></rss>