<?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[Member vs. Parameter]]></title><description><![CDATA[<p>Übergibt man Daten in einer Klasse besser per Paramter oder verwendet man ne Membervariable dafür?</p>
<pre><code>class foo() {
  public do(string t) {
    vector v;
    ...
    fill(v);
  }

  private fill(vector v){
    v=...
  };
}

//vs

class foo() {
  vector m_v;
  public do(string t) {
    ...
    fill();
  }

  private fill(){
    m_v=...
  };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/203812/member-vs-parameter</link><generator>RSS for Node</generator><lastBuildDate>Sun, 28 Jun 2026 18:56:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203812.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 26 Jan 2008 18:44:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Member vs. Parameter on Sat, 26 Jan 2008 18:44:52 GMT]]></title><description><![CDATA[<p>Übergibt man Daten in einer Klasse besser per Paramter oder verwendet man ne Membervariable dafür?</p>
<pre><code>class foo() {
  public do(string t) {
    vector v;
    ...
    fill(v);
  }

  private fill(vector v){
    v=...
  };
}

//vs

class foo() {
  vector m_v;
  public do(string t) {
    ...
    fill();
  }

  private fill(){
    m_v=...
  };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1444157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444157</guid><dc:creator><![CDATA[Schwarzer Homer]]></dc:creator><pubDate>Sat, 26 Jan 2008 18:44:52 GMT</pubDate></item><item><title><![CDATA[Reply to Member vs. Parameter on Sat, 26 Jan 2008 19:07:44 GMT]]></title><description><![CDATA[<p>Du vergleichst Birnen mit Äpfeln.</p>
<p>Entweder ist es ein Member, und hat somit über den Aufruf der Methode bestand, oder es ist nur ein lokal benötigter Wert, der danach wieder zerstört wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444166</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Sat, 26 Jan 2008 19:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Member vs. Parameter on Sun, 27 Jan 2008 06:10:37 GMT]]></title><description><![CDATA[<p>Zur Unterstuetzung des Open-Closed-Principles im Falle von Ableitungen definitiv Membervariablen. Denn der Ctor ist fuer jede Klasse individuell, nicht aber die oeffentliche Schnittstelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444311</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Sun, 27 Jan 2008 06:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to Member vs. Parameter on Sun, 27 Jan 2008 10:28:50 GMT]]></title><description><![CDATA[<p>Membervariablen sind dazu da, den Zustand des Objektes zu beschreiben. Wenn also die Variable den Zustand des Objektes beschreibt, dann nehme eine Membervariable. Wenn es ein Parameter einer auszuführenden Aktion ist, dann ist das ein Parameter.</p>
<p>In Deinem konkreten Fall kann ich nicht sagen, was die Klasse &quot;foo&quot; bedeutet und ob der Vektor zu der Eigenschaft gehört oder nicht.</p>
<p>Was ich aber sagen kann ist, daß Du in Deiner fill-Methode deinen Parameter v veränderst, der aber eine lokale Variable ist. Nach dem Methodenaufruf wird der Parameter wieder verworfen. Erwarte also nicht, daß sich der übergebene Vektor ändert.</p>
<p>Was Du wahrscheinlich meinst ist &quot;fill(vector&amp; v)&quot;. Da übergibst Du einen Verweis auf einen Vektor, über den Du den ursprünglichen Vektor auch verändern kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444365</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Sun, 27 Jan 2008 10:28:50 GMT</pubDate></item><item><title><![CDATA[Reply to Member vs. Parameter on Sun, 27 Jan 2008 12:41:37 GMT]]></title><description><![CDATA[<p>Wenn ihr jetzt nen Parameter habt, der durch 10 Methoden übergeben wird, würdet ihr keine Member daraus machen, wenn es nichts mit dem Zustand des Objektes zu tun hat?</p>
<p>tntnet schrieb:</p>
<blockquote>
<p>Was ich aber sagen kann ist, daß Du in Deiner fill-Methode deinen Parameter v veränderst, der aber eine lokale Variable ist. Nach dem Methodenaufruf wird der Parameter wieder verworfen. Erwarte also nicht, daß sich der übergebene Vektor ändert.</p>
<p>Was Du wahrscheinlich meinst ist &quot;fill(vector&amp; v)&quot;. Da übergibst Du einen Verweis auf einen Vektor, über den Du den ursprünglichen Vektor auch verändern kannst.</p>
</blockquote>
<p>Ich hab keine Cpp Tags genommen, weils nur Pseudocode ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444460</guid><dc:creator><![CDATA[Schwarzer Homer]]></dc:creator><pubDate>Sun, 27 Jan 2008 12:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to Member vs. Parameter on Sun, 27 Jan 2008 22:35:42 GMT]]></title><description><![CDATA[<p>Schwarzer Homer schrieb:</p>
<blockquote>
<p>Wenn ihr jetzt nen Parameter habt, der durch 10 Methoden übergeben wird, würdet ihr keine Member daraus machen, wenn es nichts mit dem Zustand des Objektes zu tun hat?</p>
</blockquote>
<p>Kurze Antwort: Ja.</p>
<p>Wenn es logisch ein Parameter ist, dann bleibt er auch durch 10 Methodenaufrufe ein Parameter. Etwas als Member zu deklarieren, was kein Member ist, ist prinzipiell unsauber und sollte nur in begründeten Ausnahmefällen verwendet werden.</p>
<p>Wenn etwas durch 10 Methodenaufrufe durch übergeben wird, solltest Du Dich eher fragen, ob da nicht ein Designfehler vorliegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444768</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Sun, 27 Jan 2008 22:35:42 GMT</pubDate></item></channel></rss>