<?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[Referenzen in Funktionen]]></title><description><![CDATA[<p>Hi,<br />
warum meckert der Kompiler nicht bei dem Aufruf der Funktion &quot;add(i)&quot;? Gefordert ist doch laut Deklaration / Definition eine Referenz. Ich gebe ihm aber nur einen normalen int wert?!!?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

// Deklaration
int add(int&amp;);

// Definition
int add(int &amp;x){
	x++;
	return x;
}

int main(void){

	int i(0);

	for (int y(0); y &lt; 10; y++){
		add(i);
		cout &lt;&lt; i &lt;&lt; endl;
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/184869/referenzen-in-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 01:18:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184869.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jun 2007 21:53:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenzen in Funktionen on Tue, 19 Jun 2007 21:53:30 GMT]]></title><description><![CDATA[<p>Hi,<br />
warum meckert der Kompiler nicht bei dem Aufruf der Funktion &quot;add(i)&quot;? Gefordert ist doch laut Deklaration / Definition eine Referenz. Ich gebe ihm aber nur einen normalen int wert?!!?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

// Deklaration
int add(int&amp;);

// Definition
int add(int &amp;x){
	x++;
	return x;
}

int main(void){

	int i(0);

	for (int y(0); y &lt; 10; y++){
		add(i);
		cout &lt;&lt; i &lt;&lt; endl;
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1309473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309473</guid><dc:creator><![CDATA[Laines]]></dc:creator><pubDate>Tue, 19 Jun 2007 21:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Tue, 19 Jun 2007 22:14:12 GMT]]></title><description><![CDATA[<p>Mein Kompiler &quot;MinGW&quot; meckert nicht....</p>
<p>Warum sollte er auch?</p>
<p>Mach daraus mal:</p>
<pre><code class="language-cpp">int i(0);
</code></pre>
<pre><code class="language-cpp">int i = 0;
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309480</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 Jun 2007 22:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Wed, 20 Jun 2007 05:50:41 GMT]]></title><description><![CDATA[<p>Naja, sein Compiler meckert ja auch nicht. Das ist es wohl was ihn verwirrt! <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>Beim Aufruf von add übergibst du ja eine Referenz und zwar auf i.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309562</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 20 Jun 2007 05:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Wed, 20 Jun 2007 06:08:38 GMT]]></title><description><![CDATA[<p>Verstehe nicht so ganz was dein Problem ist.<br />
Letzlich bewirkt die Referenz nur, dass er sich innerhalb der Methode keine Kopie des übergebenen Objektes erstellt sondern das übergebene Objekt selbst verändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309567</guid><dc:creator><![CDATA[unbekannt]]></dc:creator><pubDate>Wed, 20 Jun 2007 06:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Wed, 20 Jun 2007 06:56:46 GMT]]></title><description><![CDATA[<p>Hi Laines,</p>
<p>ich kann Deine Verwirrung ein wenig verstehen. Du hast gedacht, dass nur Folgendes geht:</p>
<pre><code class="language-cpp">int main(void){
   int i(0);
   int&amp; ri = i; // (*)

   add(ri);
...
</code></pre>
<p>Stimmt's ?</p>
<p>Aber merk Dir einfach: (*) macht der Compiler für Dich.<br />
Da ist auch ein Unterschied zu Zeigern in C++: Da Referenzen (im Gegensatz zu Zeigern) keine echten Variablen sind, kann der Compiler sie direkt durch die &quot;referenzierten Objekte&quot; ersetzen.<br />
Hakelig wird's in folgenden Situationen:</p>
<pre><code class="language-cpp">int add(int&amp;); 
int add(int); // ohne &amp;
int ref_add(int&amp;);

int main() {
   int i = 2;
   add(i); // Compiler error: un-eindeutiger Aufruf; weiß nicht, welches er nehmen soll
   ref_add(2); // Compiler error: An einen Literal (2) kann er nur const&amp; binden
   add(2); // ist eindeutig, weil ja add(int&amp;) nicht geht
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309591</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 20 Jun 2007 06:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Wed, 20 Jun 2007 13:19:17 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hi Laines,</p>
<p>ich kann Deine Verwirrung ein wenig verstehen. Du hast gedacht, dass nur Folgendes geht:</p>
<pre><code class="language-cpp">int main(void){
   int i(0);
   int&amp; ri = i; // (*)

   add(ri);
...
</code></pre>
<p>Stimmt's ?</p>
</blockquote>
<p>Stimmt! <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>Danke für die ausführliche Erklärung! <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/1309920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309920</guid><dc:creator><![CDATA[Laines]]></dc:creator><pubDate>Wed, 20 Jun 2007 13:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Wed, 20 Jun 2007 18:54:28 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Hakelig wird's in folgenden Situationen:</p>
<pre><code class="language-cpp">int ref_add(int&amp;);
...
ref_add(2);
</code></pre>
</blockquote>
<p>außer du bastelst dir einen rvalue-to-lvalue cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310172</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Wed, 20 Jun 2007 18:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzen in Funktionen on Thu, 21 Jun 2007 10:47:53 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>...außer du bastelst dir einen rvalue-to-lvalue cast.</p>
</blockquote>
<p>&quot;Eins nach dem Anderen, mein junger Padawan ! Eins nach dem Anderen !&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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1310549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1310549</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 21 Jun 2007 10:47:53 GMT</pubDate></item></channel></rss>