<?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[Abgrenzung privater Member]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Wie geht ihr eigentlich mit privaten Variablen und Methoden in Klassen um? Ich möchte ja nicht immer, dass man gleich alles sieht, wenn man beispielsweise IntelliSense nutzt. Vor allem wenn man für alle Memberfunktionen die gleiche Namenskonvention hat, kann das schnell unübersichtlich werden - oder man muss eben alle öffentlichen Funktionen kennen.</p>
<p>Wie macht ihr das? Für jede kleine Klasse das Pimpl-Idiom einzusetzen finde ich übertrieben, obwohl es halt schon die Schnittstelle sauber hält. Habt ihr für private Memberfunktionen eine andere Benennung? Ich habe mir Unterstriche am Anfang überlegt, weil man die Member dann bei IntelliSense hinten stehen, aber irgendwie ist es auch nicht so schön. Für Membervariablen ein Präfix <code>m_</code> oder <code>My</code> oder ähnlich ist ja noch okay...</p>
<p>Momentan sieht man bei mir von aussen eigentlich keinen wirklichen Unterschied zwischen privaten und öffentlichen Memberfunktionen (ausser dem IntelliSense-Schloss ;)). Im Header hab ich natürlich schon in eigene Sektionen unterteilt, falls man dort etwas nachschaut. Eigentlich ist das nicht tragisch, mich hätte aber gewundert, wie das andere sehen. Ist auch eine Frage des Code-Stils... <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/topic/230714/abgrenzung-privater-member</link><generator>RSS for Node</generator><lastBuildDate>Sat, 26 Sep 2026 01:11:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230714.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Dec 2008 11:26:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 11:26:24 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Wie geht ihr eigentlich mit privaten Variablen und Methoden in Klassen um? Ich möchte ja nicht immer, dass man gleich alles sieht, wenn man beispielsweise IntelliSense nutzt. Vor allem wenn man für alle Memberfunktionen die gleiche Namenskonvention hat, kann das schnell unübersichtlich werden - oder man muss eben alle öffentlichen Funktionen kennen.</p>
<p>Wie macht ihr das? Für jede kleine Klasse das Pimpl-Idiom einzusetzen finde ich übertrieben, obwohl es halt schon die Schnittstelle sauber hält. Habt ihr für private Memberfunktionen eine andere Benennung? Ich habe mir Unterstriche am Anfang überlegt, weil man die Member dann bei IntelliSense hinten stehen, aber irgendwie ist es auch nicht so schön. Für Membervariablen ein Präfix <code>m_</code> oder <code>My</code> oder ähnlich ist ja noch okay...</p>
<p>Momentan sieht man bei mir von aussen eigentlich keinen wirklichen Unterschied zwischen privaten und öffentlichen Memberfunktionen (ausser dem IntelliSense-Schloss ;)). Im Header hab ich natürlich schon in eigene Sektionen unterteilt, falls man dort etwas nachschaut. Eigentlich ist das nicht tragisch, mich hätte aber gewundert, wie das andere sehen. Ist auch eine Frage des Code-Stils... <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/1637667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637667</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Dec 2008 11:26:24 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 12:04:43 GMT]]></title><description><![CDATA[<p>Ich begnüge mich mit dem Schloss. Und habe ehrlich gesagt noch nie was anderes gesehen. IntelliSense soll ja nur eine Hilfestellung sein und keine Dokumentation oder Referenz.</p>
<p>Wenn du dir Visual Assist X zulegst, dann kannst du die Methoden sogar filtern, also zum Beispiel nur alle öffentlichen Methoden anzeigen lassen. Brauche ich aber kaum.</p>
<p>Wieso willst du eigentlich den Rest verstecken? Was hast du zu verbergen? <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637687</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 31 Dec 2008 12:04:43 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 12:08:27 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wie macht ihr das? Für jede kleine Klasse das Pimpl-Idiom einzusetzen finde ich übertrieben, obwohl es halt schon die Schnittstelle sauber hält.</p>
</blockquote>
<p>die privaten sachen sind eh nicht teil der schnittstelle, also wozu pimpeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637692</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 31 Dec 2008 12:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 12:15:42 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Wie macht ihr das? Für jede kleine Klasse das Pimpl-Idiom einzusetzen finde ich übertrieben, obwohl es halt schon die Schnittstelle sauber hält.</p>
</blockquote>
<p>die privaten sachen sind eh nicht teil der schnittstelle, also wozu pimpeln?</p>
</blockquote>
<p>Ich denke, dass er das wollte, damit er entscheiden kann, was sichtbar ist ( also von Seitens Intellisense). (Also nur alle public).</p>
<p>EDIT:<br />
Also ich lasse es auch so. Wenn Intellisense mir etwas zeigt, dann ignorier ich das eifach. Und falls ich es doch benutze, wird mich mein Compiler schon bestrafen. <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/1637695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637695</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 31 Dec 2008 12:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 13:14:13 GMT]]></title><description><![CDATA[<p>Du willst dir von IntelliSense diktieren lassen, wie du zu programmieren hast? Halte ich nicht für klug. Wenn IntelliSense nicht das macht, was du willst, dann schalte es aus, oder verwende was anderes. Es kann doch nicht sein, dass du anderen Code schreibst, damit die IDE den anders darstellt. Schreib den Code für dein Programm, nicht für die IDE.</p>
<p>Nebenbei: Mal eine interessante <a href="http://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html" rel="nofollow">Überlegung</a> zu dem Thema.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637710</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 31 Dec 2008 13:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Wed, 31 Dec 2008 18:20:23 GMT]]></title><description><![CDATA[<p>Nein, so wichtig ist mir IntelliSense schon nicht, dass ich meinen gesamten Code nach ihm richte. Bisher habe ich mich schliesslich überhaupt nicht in diese Richtung bemüht. Das wäre dann höchstens ein netter Nebeneffekt. Drum interessiert es mich auch, wie andere Leute mit privaten Membern umgehen, vielleicht gibt es da ein verbreitetes System oder so.</p>
<p>Scheinbar aber nicht, was aber auch okay ist. Das ist ja auch eher Kosmetik. Mit grösster Wahrscheinlichkeit werde ich meinen Codestil so beibehalten... <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>P.S. Die Thematik des Artikels ist wirklich interessant, ich habe mal einen Teil gelesen. Ich meine, bereits die IDE an sich nimmt uns einen grossen Teil der Arbeit ab. Oder der Debugger. IntelliSense eben noch einen weiteren. Aber die Tendenz, dass man sich nichts mehr merken muss, hat schon was... Grundsätzlich finde ich diese Hilfsmittel nicht schlecht, da sie einen wirklich unterstützen können, aber es stimmt schon, man wird schneller zu deren Sklaven, als man denkt... Aber ist das nicht allgemein so? Denke man nur mal an den Computer. Was wären wir ohne ihn?</p>
<p>So langsam wirds philosophisch, da könnte man noch stundenlang Aufsätze schreiben... <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>In diesem Sinne wünsche ich allen ein gutes neues Jahr! :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637844</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Dec 2008 18:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Thu, 01 Jan 2009 07:47:39 GMT]]></title><description><![CDATA[<p>Es gibt IIRC irgendeine Möglichkeit IntelliSense dazu zu bringen gewisse Dinge nicht anzuzeigen. Leider weiss ich nicht auswendig wie es geht <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 />
Es ist möglich dass man dazu Einträge in einem bestimmten File machen muss - das wäre dann weniger praktikabel.<br />
Wenn es so ginge dass man einfach einen bestimmten Tag in ein Kommentar schreibt, oder ein #pragma oder ähnliches setzt, dann fände ich das eine Möglichkeit über die man durchaus nachdenken könnte.</p>
<p>Vor allem wenn man an irgendwelchen Libraries arbeitet die dann mehrere Leute verwenden, denn übersichtlicher ist es IMO schon wenn man gleich nur die public/protected Teile sieht. Lästig wird es dagegen dann wenn man selbst Änderungen an diesen Klassen durchführt, denn man selbst bekommt die Vorschläge von IntelliSense ja dann auch nichtmehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637909</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 01 Jan 2009 07:47:39 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Thu, 01 Jan 2009 15:28:33 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Es gibt IIRC irgendeine Möglichkeit IntelliSense dazu zu bringen gewisse Dinge nicht anzuzeigen. Leider weiss ich nicht auswendig wie es geht <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>
</blockquote>
<p>Ich denke einmal nicht. Aber dafür kannst du dir ja VA holen. <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="🙂"
    /> - Dort kannst du glaube ich auch gewisse Sachen filtern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637990</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 01 Jan 2009 15:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Thu, 01 Jan 2009 15:42:58 GMT]]></title><description><![CDATA[<p>Wie wärs, die private Methoden einfach in nen anonymen namespace zu stecken, falls sie nicht all zu viele member brauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637999</guid><dc:creator><![CDATA[übrigens]]></dc:creator><pubDate>Thu, 01 Jan 2009 15:42:58 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Fri, 02 Jan 2009 22:26:18 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Es gibt IIRC irgendeine Möglichkeit IntelliSense dazu zu bringen gewisse Dinge nicht anzuzeigen. Leider weiss ich nicht auswendig wie es geht <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>
</blockquote>
<p>Ich denke einmal nicht. Aber dafür kannst du dir ja VA holen. <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="🙂"
    /> - Dort kannst du glaube ich auch gewisse Sachen filtern.</p>
</blockquote>
<p>Irgendeine Studio Version hat zumindest mal von den MFC Klassen die privaten Member ausgeblendet. Kann aber auch sein dass das hardcoded war/ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638594</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 02 Jan 2009 22:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sat, 03 Jan 2009 14:32:26 GMT]]></title><description><![CDATA[<p>Okay. Mal eine etwas andere Frage: Implementiert ihr Funktionen, die die Klasse in ihrer Arbeitsweise unterstützen und möglicherweise von Memberfunktionen aufgerufen werden, aber keinen direkten Zugriff auf Membervariablen haben müssen, immer als freie Funktionen?</p>
<p>Also nach dem Prinzip: möglichst nur das als Memberfunktion, was auch wirklich nötig ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638831</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 03 Jan 2009 14:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sat, 03 Jan 2009 15:57:00 GMT]]></title><description><![CDATA[<p>Du meinst so?</p>
<pre><code class="language-cpp">namespace WebBrowserStuff {
    class WebBrowser {...};
    void clearBrowser(WebBrowser&amp; wb);
    ...
}
</code></pre>
<p><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/1638865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638865</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sat, 03 Jan 2009 15:57:00 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 10:36:45 GMT]]></title><description><![CDATA[<p>Ich eigentlich nicht. Wenn ich die Funktion möglicherweise irgendwo anders brauche kann, dann probiere ich die schon allgemeingültig zu abstrahieren, aber wenn es dann auf das hinausläuft, dass man alle Funktionen auslagert und mit einem Zeiger/Referenz auf das Objekt übergibt, dann sind wir eigentlich wieder bei C angelangt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639149</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 04 Jan 2009 10:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 12:28:57 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Wie macht ihr das? Für jede kleine Klasse das Pimpl-Idiom einzusetzen finde ich übertrieben, obwohl es halt schon die Schnittstelle sauber hält.</p>
</blockquote>
<p>die privaten sachen sind eh nicht teil der schnittstelle, also wozu pimpeln?</p>
</blockquote>
<p>Das erklaere mir mal wieso ich jedesmal das gesammte Projekt neu kompilieren muss, wenn ich an einem private-Member was veraendere?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639204</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Sun, 04 Jan 2009 12:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 12:39:53 GMT]]></title><description><![CDATA[<p>die schnittstelle ist das, was die anderen programmierer über deine klasse wissen müssen, um sie benutzen zu können. also die public-sachen (gegebenenfalls noch ein wenig protected).<br />
die privaten vars gehören nicht zur schnittstelle, denn die kannst du heimlich ändern, ohne den anderen programmieren eine mail schreiben zu müssen, in der du um verzeihung bittest, daß du so spät im projet was änderst und sie diese änderung berücksichtigen müssen.<br />
was das mit dem neucompilieren zu tun hat, weiß ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639212</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 04 Jan 2009 12:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 15:04:31 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ich eigentlich nicht. Wenn ich die Funktion möglicherweise irgendwo anders brauche kann, dann probiere ich die schon allgemeingültig zu abstrahieren, aber wenn es dann auf das hinausläuft, dass man alle Funktionen auslagert und mit einem Zeiger/Referenz auf das Objekt übergibt, dann sind wir eigentlich wieder bei C angelangt.</p>
</blockquote>
<p>Hm ja, das schon.</p>
<p>Ich habe nur momentan in einer Klasse so etwas:</p>
<pre><code class="language-cpp">public:
    void DoSomething(MyClass&amp; Obj);
private:
    void DoALittleBitMore(MyClass&amp; Obj);
    void DoAnythingElse(MyClass&amp; Obj);
</code></pre>
<p>Die privaten Methoden werden dann von der öffentlichen <code>DoSomething()</code> aufgerufen. Sie ändern aber nichts an den Membern, sondern nur an der übergebenen <code>MyClass</code> -Referenz. So könnte ich die beiden Memberfunktionen auch als freie Funktionen implementieren, aber irgendwie scheint es mir so besser, da sie logisch auch zur Klasse gehören...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639290</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 04 Jan 2009 15:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 15:13:27 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>[...]Sie ändern aber nichts an den Membern [...] So könnte ich die beiden Memberfunktionen auch als freie Funktionen implementieren[...]</p>
</blockquote>
<p><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="😉"
    /> <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/1639297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639297</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Sun, 04 Jan 2009 15:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 15:52:18 GMT]]></title><description><![CDATA[<p>wie gesagt</p>
<p>übrigens schrieb:</p>
<blockquote>
<p>Wie wärs, die private Methoden einfach in nen anonymen namespace zu stecken, falls sie nicht all zu viele member brauchen.</p>
</blockquote>
<p>dann brauchst du dir auch keine gedanken machen, dass sie außerhalb falsch verwendet werden.<br />
Wenn du sie als freie Funktionen machst auf die jeder zugreifen kann, dann hast du an der compilezeit ja garnix gewonnen.</p>
<p>volkard schrieb:</p>
<blockquote>
<p>die privaten vars gehören nicht zur schnittstelle, denn die kannst du heimlich ändern, ohne den anderen programmieren eine mail schreiben zu müssen, in der du um verzeihung bittest, daß du so spät im projet was änderst und sie diese änderung berücksichtigen müssen.<br />
was das mit dem neucompilieren zu tun hat, weiß ich nicht.</p>
</blockquote>
<p>Wenn du ein größeres Projekt hast (noch größer <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="😉"
    /> ) und eine Klasse (z.B. Logging, Scenegraph...) die an vielen Stellen includiert wird und du änderst jetzt nur einen Parameter einer privaten Methode und darfst jetzt wieder 1000 Dateien 10 minuten lang kompilieren, dann weiß du was das mit compilezeit zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639321</guid><dc:creator><![CDATA[übrigens]]></dc:creator><pubDate>Sun, 04 Jan 2009 15:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 16:13:12 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Okay. Mal eine etwas andere Frage: Implementiert ihr Funktionen, die die Klasse in ihrer Arbeitsweise unterstützen und möglicherweise von Memberfunktionen aufgerufen werden, aber keinen direkten Zugriff auf Membervariablen haben müssen, immer als freie Funktionen?</p>
<p>Also nach dem Prinzip: möglichst nur das als Memberfunktion, was auch wirklich nötig ist?</p>
</blockquote>
<p>Also eigentlich: ja. Und diese freien Funktionen kommen dann nach Möglichkeit in ein eigenes Modul. Es gibt einfach prozeduale Bestandteile. Für etwas wie <code>kreuzprodukt(vec a, vec b)</code> macht es keinen Sinn, eine Klasse zu schreiben.</p>
<p>Nenne mal ein Beispiel. Also mir ist sowas eigentlich bei vernünftigem Design (wo ich sagen muss, dass das nicht immer der Fall ist <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="🙂"
    /> ) nicht unter gekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639340</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 04 Jan 2009 16:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Abgrenzung privater Member on Sun, 04 Jan 2009 22:53:59 GMT]]></title><description><![CDATA[<p>Das mit dem anonymen Namensraum wäre gar nicht nötig, da die Funktionen gerade in den CPP-Dateien deklariert und definiert würden. Man sieht also rein gar nichts von aussen.</p>
<p>ProgChild, eigentlich mache ich das tendenziell auch so, aber vielleicht gibts da ja ein guter Grund dagegen. Bei mir habe ich irgendwie das Gefühl, es sei nicht nötig (keine Ahnung wieso). <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>Aber es stimmt schon, dann würde ich wahrscheinlich am Anfang der Implementierungsdatei die Deklarationen der lokalen freien Funktionen hinschreiben und anschliessend die Definitionen der Member- und freien Funktionen. Wobei ich an meinem Design generell noch ein wenig rumstudieren muss... <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/1639543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639543</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 04 Jan 2009 22:53:59 GMT</pubDate></item></channel></rss>