<?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[Referenz]]></title><description><![CDATA[<p>Hallo, hab da noch n kleines Verständnisproblem irgendwie grad:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void func(int &amp;a);

int main()
{
    int value=14;
    func(value);
    func(12); //Was muss ich machen, dass das hier auch geht?!

    return 0;
}

void func(int &amp;a)
{
    cout &lt;&lt; a &lt;&lt; endl;
}
</code></pre>
<p>ERRORS:</p>
<blockquote>
<p>Compiling: C:\MinGW\Andi\referenz.cpp<br />
C:\MinGW\Andi\referenz.cpp: In function <code>int main()': C:\\MinGW\\Andi\\referenz.cpp:10: error: call of overloaded</code>func(int&amp;)' is ambiguous<br />
C:\MinGW\Andi\referenz.cpp:4: note: candidates are: void func(int&amp;)<br />
C:\MinGW\Andi\referenz.cpp:5: note: void func(int)<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
3 errors, 0 warnings</p>
</blockquote>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201491/referenz</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 00:43:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201491.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Dec 2007 20:10:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 20:10:57 GMT]]></title><description><![CDATA[<p>Hallo, hab da noch n kleines Verständnisproblem irgendwie grad:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void func(int &amp;a);

int main()
{
    int value=14;
    func(value);
    func(12); //Was muss ich machen, dass das hier auch geht?!

    return 0;
}

void func(int &amp;a)
{
    cout &lt;&lt; a &lt;&lt; endl;
}
</code></pre>
<p>ERRORS:</p>
<blockquote>
<p>Compiling: C:\MinGW\Andi\referenz.cpp<br />
C:\MinGW\Andi\referenz.cpp: In function <code>int main()': C:\\MinGW\\Andi\\referenz.cpp:10: error: call of overloaded</code>func(int&amp;)' is ambiguous<br />
C:\MinGW\Andi\referenz.cpp:4: note: candidates are: void func(int&amp;)<br />
C:\MinGW\Andi\referenz.cpp:5: note: void func(int)<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
3 errors, 0 warnings</p>
</blockquote>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428260</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 30 Dec 2007 20:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 20:33:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void func(int &amp;a);
--&gt;
void func(const int &amp;a);
</code></pre>
<p>Da du die per Referenz übergebene Variable verändern könntest, was aber bei der konstante 12 nicht möglich ist.</p>
<p>Allerdibgs machen Referenzen bei built-in Typen nur Sinn, wenn du sie verändern willst. Einen Geschwindigkeitsvorteil gibt es dabei wohl eher nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428263</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 30 Dec 2007 20:33:53 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 20:34:11 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Also bei mir kommt da der wesentlich aussagekräftigere Fehler</p>
<blockquote>
<p>...main.cpp:10: error: invalid initialization of non-const reference of type 'int&amp;' from a temporary of type 'int'<br />
...main.cpp:4: error: in passing argument 1 of `void func(int&amp;)'</p>
</blockquote>
<p>und besagt das deine Funktion eine Referenz auf ein int erwartet, aber du im zweiten Aufruf einen statischen Wert übergeben willst. Entweder bleibst du bei der Referenz als Funktionsparameter und arbeitest mit Referenzfähigen Variablen (wie beim ersten Aufruf), entfernst die Referenz und arbeitest mit einem By-Value Parameter oder du nimmst eine konstante Referenz.</p>
<p>(Bei einer nichtkonstanten Referenz erwartet der Compiler deb übergebenen Wert zur Laufzeit verändern zu können. Was aber bei deiner statischen 12 nicht geht)</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428264</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 30 Dec 2007 20:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 22:16:46 GMT]]></title><description><![CDATA[<p>verständniss problem aus deiner seite, wenn die fkt. eine rferenz erwarten spich einen pointer dann musss du ih auch nen pointer/zeiger übergeben wie hier :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
using namespace std; 

void func(int &amp;a); 

int main() 
{ 
    int value=14; 
    int *pointer=&amp;value;
    func(*pointer); 
    //func(12); //Was muss ich machen, dass das hier auch geht?! 

    return 0; 
} 

void func(int &amp;a) 
{ 
    cout &lt;&lt; a &lt;&lt; endl; 
}
</code></pre>
<p>... aber wie könnte man das verstehen : :p</p>
<blockquote>
<p>Allerdibgs machen Referenzen bei built-in Typen nur Sinn, wenn du sie verändern willst. Einen Geschwindigkeitsvorteil gibt es dabei wohl eher nicht.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1428301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428301</guid><dc:creator><![CDATA[rumcajs007]]></dc:creator><pubDate>Sun, 30 Dec 2007 22:16:46 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 22:19:03 GMT]]></title><description><![CDATA[<p>Eine Referenz ist etwas anderes als ein Pointer...</p>
<p>Und das was du da machst, ist unnötig Oo<br />
Da kann er gleich value übergeben, so wie er es gemacht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428303</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 30 Dec 2007 22:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 22:43:27 GMT]]></title><description><![CDATA[<p>nö, referenz übergabe heist speicheradresse übergabe (cal by recerence) und daneben gibt es das übliche Call by Value, also mittels ner normalen variablen. da bin ich mir ziemlich sicher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428317</guid><dc:creator><![CDATA[rumcajs007]]></dc:creator><pubDate>Sun, 30 Dec 2007 22:43:27 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 22:58:19 GMT]]></title><description><![CDATA[<p>trotzdem... warum so umständlich mit dem pointer-gewirr?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428324</guid><dc:creator><![CDATA[gast312312]]></dc:creator><pubDate>Sun, 30 Dec 2007 22:58:19 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 23:02:45 GMT]]></title><description><![CDATA[<p>Noch nä Frage, ich verstehe noch nicht ganz, eigentlich sollte man doch am besten immer Referenzen als Parameter verwenden. Weil ich habe gelernt, ohne Referenz wird eine Kopie der Variable erstellt und dass kostet Zeit. Mit Referenz wird direkt auf die Variable zugegriffen, keine Kopie somit kein Zeitverlust.<br />
Oder sollte ich eine Referenz nur nutzen wenn ich eine Variable außerhalb der Funktion verändern möchte weil sonst würde ja wieder eine unötige Kopie entstehen) aber wenn ja, warum?</p>
<p>Referenz:</p>
<pre><code class="language-cpp">int a=12;
func(a);

void func(int &amp;a)
{
    a=2*a;
}
</code></pre>
<p>Call by value: (mh is vll. n eher schlechtes Beispiel, mir fällt grad nix anderes ein)</p>
<pre><code class="language-cpp">int a=12;
a=func(a);

int func(int a) //Kopie 1
{
    return a*2; //Kopie 2
}
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428327</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 30 Dec 2007 23:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 23:03:55 GMT]]></title><description><![CDATA[<p>ich meine wenn oben <strong>&amp;varaible</strong> verwendet wird muss auch ne referenz übergeben werden... udn das mittels zeiger. oder nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1428328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428328</guid><dc:creator><![CDATA[rumcajs007]]></dc:creator><pubDate>Sun, 30 Dec 2007 23:03:55 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 23:25:43 GMT]]></title><description><![CDATA[<p>rumcajs007 schrieb:</p>
<blockquote>
<p>ich meine wenn oben <strong>&amp;varaible</strong> verwendet wird muss auch ne referenz übergeben werden... udn das mittels zeiger. oder nicht <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>
</blockquote>
<p>Kann es sein, das du von C kommst? Wir sprechen hier von C++.</p>
<p>Referenzen haben nichts mit Pointer zutun! Wie bereits von jemand anderem gesagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428336</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 30 Dec 2007 23:25:43 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Sun, 30 Dec 2007 23:39:01 GMT]]></title><description><![CDATA[<p>Nein, eine Referenz muß kein Zeiger sein, sondern kann auch ein Objekt sein, nur darf dieses eben nicht konstant sein (wie z.B. von akari schon angemerkt wurde).</p>
<p>Und bei den eingebauten Datentypen sollte man keine konstanten Referenzen benutzen, sondern eine einfache Wertübergabe, da diese Datentypen höchstens so groß wie ein Zeiger sind (welcher intern bei Referenzen verwendet wird).<br />
Also:</p>
<pre><code class="language-cpp">void func(int x, const Class &amp;cl);

// nicht: void func(const int &amp;x, Class cl); // cl würde eine Kopie darstellen
</code></pre>
<p>Nur wenn wirklich eine echte (nicht-konstante) Referenz benötigt wird, sollte man diese übergeben, ansonsten 'const-correctness' beachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428342</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sun, 30 Dec 2007 23:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Mon, 31 Dec 2007 00:06:04 GMT]]></title><description><![CDATA[<p>eigentlich nicht, ich komme aus F dh. Frankfurt, dürfte ich mal erfahren was daran nicht stimmt :p<br />
...ok</p>
<p>referenz heisst doch speicheradresse von was auch immer, variable, stuktur oder objekt, oder nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428358</guid><dc:creator><![CDATA[rumcajs007]]></dc:creator><pubDate>Mon, 31 Dec 2007 00:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Mon, 31 Dec 2007 00:12:26 GMT]]></title><description><![CDATA[<p>rumcajs007 schrieb:</p>
<blockquote>
<p>referenz heisst doch speicheradresse von was auch immer, variable, stuktur oder objekt, oder nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>Nein, ebend nicht! Oder du kommst von Java? Wir sind hier in der C++-Welt!</p>
<p>Referenzen in C++ heißt: <em><strong>&quot;Eine Referenz ist ein anderer Name für eine Variable.&quot;</strong></em> Nicht mehr und nicht weniger.<br />
<a href="http://www.kharchi.eu/wiki/doku.php?id=cpp:std:reference" rel="nofollow">http://www.kharchi.eu/wiki/doku.php?id=cpp:std:reference</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428365</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 31 Dec 2007 00:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz on Mon, 31 Dec 2007 00:27:01 GMT]]></title><description><![CDATA[<p>ah soo, danke für'n link <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/1428370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428370</guid><dc:creator><![CDATA[rumcajs007]]></dc:creator><pubDate>Mon, 31 Dec 2007 00:27:01 GMT</pubDate></item></channel></rss>