<?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[call by reference?]]></title><description><![CDATA[<p>Sollte man eurer Meinung nach immer (const-)referenzen übergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168294/call-by-reference</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 09:10:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168294.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Dec 2006 16:06:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:06:04 GMT]]></title><description><![CDATA[<p>Sollte man eurer Meinung nach immer (const-)referenzen übergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195487</guid><dc:creator><![CDATA[|M|]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:14:13 GMT]]></title><description><![CDATA[<p>|M| schrieb:</p>
<blockquote>
<p>Sollte man eurer Meinung nach immer (const-)referenzen übergeben?</p>
</blockquote>
<p>const: Immer, wenn man es kann. (&quot;const-as-const-can&quot;).<br />
Referenz: Wenn man es braucht. (Funktion soll ändern oder Kopieren des Parameters &quot;kostet zu viel&quot; (=&gt; const&amp;))</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195494</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:16:30 GMT]]></title><description><![CDATA[<p>Deshalb ja die Klammern um des const.</p>
<p>Naja, ist es nicht günstiger für die Speicherauslastung ( Ich weiss ich bin ein Krümelkacker! )?</p>
<p>Ist es langsamer als call by value?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195498</guid><dc:creator><![CDATA[|M|]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:16:30 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:27:23 GMT]]></title><description><![CDATA[<p>Bei PODs: nein,<br />
bei eigenen kleinen Datentypen: nein,<br />
bei fetten Brummern: ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195503</guid><dc:creator><![CDATA[cdfgasg]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:28:08 GMT]]></title><description><![CDATA[<p>Im Bezug auf die Frage wann man const&amp; T verwenden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195504</guid><dc:creator><![CDATA[cdfgasg]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:28:08 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 16:55:23 GMT]]></title><description><![CDATA[<p>Sorry, bin nicht der klügste:<br />
Was sind POD'S?<br />
Sind das die eingebauten Datentypen wie int, float u.s.w.?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195522</guid><dc:creator><![CDATA[|M|]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:55:23 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 17:00:53 GMT]]></title><description><![CDATA[<p>|M| schrieb:</p>
<blockquote>
<p>Was sind POD'S?</p>
</blockquote>
<p>]</p>
<p>Unter POD'S versteht man im englischen die Dinge die POD gehoeren, im Deutschen gibts nicht mal fuer das besitzanzeigende einen Apostroph.</p>
<p>Im Grunde sollte es eher built-in Types heissen, den PODs sind auch umfangreiche Strukturen, gemeint sind auf jeden Fall die eingebauten Datentypen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195525</guid><dc:creator><![CDATA[bhhhhhhhh]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 17:05:57 GMT]]></title><description><![CDATA[<p>POD = Plain Old Data</p>
<p>die guten alten Daten <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/1195531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195531</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 20 Dec 2006 17:05:57 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 19:56:38 GMT]]></title><description><![CDATA[<p>Das wichtigste steht schon da, immer const wenn const geht.</p>
<p>Das zweit-wichtigste steht im Prinzip auch schon da, nämlich keine const Referenzen für kleine &amp; billigst zu kopierende Dinge verwenden wie eben ints, longs oder doubles, oder auch Instanzen von klitzekleinen Klassen. Wo man die Grenze ziehen soll ist schwer zu sagen, aber ich denke 8 oder 16 Byte sind wohl nicht ganz verkehrt.</p>
<p>----</p>
<p>Sobald man halt ein Objekt an eine Referenz bindet die ein Parameter für eine Funktion ist macht man damit ja die Adresse des Objektes der entsprechenden Funktion bekannt. Wenn der Compiler die Implementierung der Funktion nicht sehen kann, hat er keine Chance rauszubekommen was die Funktion mit dieser Adresse gemacht hat, und muss davon ausgehen, dass z.B. jeder globale Zeiger u.U. jetzt auf das Objekt zeigt, bzw. jeder Programmteil nun dieses Objekt modifizieren oder auslesen kann. Ergo muss er an vielen Stellen wo es sonst nicht notwendig wäre Werte in das Objekt zurückschreiben bzw. neu davon einlesen -- wo er normalerweise die Werte in einem Register halten hätte können.</p>
<p>Und wenn das Objekt dessen Adresse man so bekannt macht Teil eines grösseren Objektes ist (z.B. ein Feld in einem Array, oder auch ein Member einer Klasse), dann wird ein &quot;vorsichtiger&quot; Compiler auch davon ausgehen dass das grössere Objekt nun global bekannt ist, und auch dort viele Optimierungen weglassen.</p>
<p>In vielen Fällen ist es egal, da in grossen, komplexen Programmen die Adressen der meisten Objekte sowieso &quot;global bekannt&quot; sind, aber wenigstens in diversen Performance-Kritischen Teilen kann man darauf achtgeben sich durch das &quot;bekanntmachen&quot; von Adressen nicht die Performance zu versauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195632</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 20 Dec 2006 19:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Wed, 20 Dec 2006 20:59:01 GMT]]></title><description><![CDATA[<p>cdfgasg schrieb:</p>
<blockquote>
<p>Bei PODs: nein,<br />
bei eigenen kleinen Datentypen: nein,<br />
bei fetten Brummern: ja.</p>
</blockquote>
<p>es gibt auch fette PODs. ätsch!</p>
<p>alles, was man sonst mit call-by-value machen würde und fett ist, sollte stattdessen call by const-reference sein.<br />
(ausnahme ist ein seltener fall, wo verdammt viele operationen auf dem objekt stattfinden, so richtig O(n^3) mal oder so.)<br />
fett ist dabei meistens zeugs, das mehr bytes hat als der datenbus. also wenn sizeof(Object)&gt;sizeof(long) dürfte man generell an const-referenzen denken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195714</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 20 Dec 2006 20:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Thu, 21 Dec 2006 08:58:56 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>...<br />
fett ist dabei meistens zeugs, das mehr bytes hat als der datenbus. also wenn sizeof(Object)&gt;sizeof(long) dürfte man generell an const-referenzen denken.</p>
</blockquote>
<p>Das ist mal eine interessante, plausible und hilfreiche Definition für &quot;fett&quot;.</p>
<p>Danke,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195879</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 21 Dec 2006 08:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Thu, 21 Dec 2006 10:42:24 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>fett ist dabei meistens zeugs, das mehr bytes hat als der datenbus. also wenn sizeof(Object)&gt;sizeof(long) dürfte man generell an const-referenzen denken.</p>
</blockquote>
<p>Genauso wenn das Objekt einen eigenen Kopier-Konstruktor mitbringt, könnte es zumindest eine gute Idee sein, auf Referenzen zu wechseln (selbst wenn das Objekt an sich &quot;klein&quot; ist, kann es ziemlich viele Daten hinterherschleppen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195963</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to call by reference? on Thu, 21 Dec 2006 13:46:43 GMT]]></title><description><![CDATA[<p>Joa; da hab ich ja ne schöne Gesprächsrunde auf die Beine gestellt.</p>
<p>DANKE an ALLE!</p>
<p>PS: Ich liebe dises Forum!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196123</guid><dc:creator><![CDATA[|M|]]></dc:creator><pubDate>Thu, 21 Dec 2006 13:46:43 GMT</pubDate></item></channel></rss>