<?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[Pointer Referenz Value]]></title><description><![CDATA[<p>Hallo erstmal,</p>
<p>habe folgende Funktionen:</p>
<pre><code class="language-cpp">void ValueFunction(Mammal MammalValue)     {                                         
 MammalValue.Speak();                     
}  

void PtrFunction(Mammal *pMammal)          
{                                          
 pMammal -&gt; Speak();                       
}  

void RefFunction(Mammal &amp;rMammal)
{
 rMammal.Speak();     
}

//und folgende Funktionsaufrufe:
PtrFunction(ptr);
RefFunction(*ptr);
ValueFunction(*ptr);
</code></pre>
<p>Fragen:<br />
1. Wann nimmt man den &quot;-&gt;&quot; und wann den &quot;.&quot; um die Methode aufzurufen?<br />
2. Wird bei PtrFunction die Adresse übergeben und bei RefFunction und<br />
ValueFunction das Objekt selbst?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171775/pointer-referenz-value</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 13:13:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171775.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Jan 2007 10:21:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 10:21:26 GMT]]></title><description><![CDATA[<p>Hallo erstmal,</p>
<p>habe folgende Funktionen:</p>
<pre><code class="language-cpp">void ValueFunction(Mammal MammalValue)     {                                         
 MammalValue.Speak();                     
}  

void PtrFunction(Mammal *pMammal)          
{                                          
 pMammal -&gt; Speak();                       
}  

void RefFunction(Mammal &amp;rMammal)
{
 rMammal.Speak();     
}

//und folgende Funktionsaufrufe:
PtrFunction(ptr);
RefFunction(*ptr);
ValueFunction(*ptr);
</code></pre>
<p>Fragen:<br />
1. Wann nimmt man den &quot;-&gt;&quot; und wann den &quot;.&quot; um die Methode aufzurufen?<br />
2. Wird bei PtrFunction die Adresse übergeben und bei RefFunction und<br />
ValueFunction das Objekt selbst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219056</guid><dc:creator><![CDATA[testor]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:21:26 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 10:34:45 GMT]]></title><description><![CDATA[<p>1. Normalerweise nimmt man '.', um auf Elemente eines Objekts zuzugreifen. Pointer mußt du vorher noch dereferenzieren, so daß du eigentlich <code>(*p).el</code> schreiben müsstest - weil das unschön ist, wurde dafür die Abkürzung -&gt; eingeführt.</p>
<p>2. ptrFunction() bekommt die Adresse des Objekts, RefFunction() eine Referenz (Alias) auf das Objekt (also quasi das Objekt selber), ValueFunction() ein Kopie des Objekts.<br />
(den Unterschied zwischen Referenz und Kopie siehst du besonders deutlich, wenn die Funktionen das übergebene Objekt ändern wollen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219065</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 10:38:53 GMT]]></title><description><![CDATA[<p>danke dir, hab ich mir auch so gedacht, war nur etwas unsicher <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/1219067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219067</guid><dc:creator><![CDATA[testor]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 10:46:18 GMT]]></title><description><![CDATA[<p>Aber nen Index Zugriff (z.B.) auf nen std::vector&lt;Foo*&gt;*</p>
<p>muss ich erst dereferenzieren oder gibts ne andere Möglichkeit?</p>
<p>Also so:</p>
<pre><code class="language-cpp">(*myVec)[3] = new Foo();
</code></pre>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219071</guid><dc:creator><![CDATA[Nachfrager]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 10:49:56 GMT]]></title><description><![CDATA[<p>In dem Beispiel könntest du noch <code>myVec-&gt;operator[](3)=new Foo;</code> oder myVec-&gt;at(3)=new Foo;[/c] verwenden (letzteres ist die abgesicherte Version von op[]), aber im Allgemeinen gibt es keine Abkürzung für Dereferenzierung+Indexzugriff.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219072</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 10:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 12:24:46 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>letzteres ist die abgesicherte Version von op[]</p>
</blockquote>
<p>Heißt?<br />
Mit Bereichsüberprüfung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219134</guid><dc:creator><![CDATA[Nachfrager]]></dc:creator><pubDate>Mon, 29 Jan 2007 12:24:46 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 12:31:22 GMT]]></title><description><![CDATA[<p>Nachfrager schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>letzteres ist die abgesicherte Version von op[]</p>
</blockquote>
<p>Heißt?<br />
Mit Bereichsüberprüfung?</p>
</blockquote>
<p>Ja, genau - wenn du einen zu großen (oder negativen) Index angibst, liefert vector::operator[] einen undefinierten Wert, vector::at() wirft dir eine out_of_range Exception entgegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219138</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 12:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 14:50:13 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Nachfrager schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>letzteres ist die abgesicherte Version von op[]</p>
</blockquote>
<p>Heißt?<br />
Mit Bereichsüberprüfung?</p>
</blockquote>
<p>Ja, genau - wenn du einen zu großen (oder negativen) Index angibst, liefert vector::operator[] einen undefinierten Wert, vector::at() wirft dir eine out_of_range Exception entgegen.</p>
</blockquote>
<p>Wenn man einen ungültigen Index verwendet liefert operator [] nicht einen ungültigen Wert, sondern es kommt zu undefiniertem Verhalten.<br />
Was ein grosser Unterschied ist <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/1219239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219239</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 29 Jan 2007 14:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Mon, 29 Jan 2007 15:12:00 GMT]]></title><description><![CDATA[<p>Etwa so groß wie der Unterschied zwischen &quot;ungültigem&quot; und &quot;undefiniertem&quot; Wert? :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219248</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 29 Jan 2007 15:12:00 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Tue, 30 Jan 2007 07:24:07 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Wenn man einen ungültigen Index verwendet liefert operator [] nicht einen ungültigen Wert, sondern es kommt zu undefiniertem Verhalten.</p>
</blockquote>
<p>wlkikiv - ich sagte nicht &quot;ungültiger Wert&quot;, sondern &quot;undefinierter Wert&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219540</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 30 Jan 2007 07:24:07 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer Referenz Value on Tue, 30 Jan 2007 07:28:37 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Etwa so groß wie der Unterschied zwischen &quot;ungültigem&quot; und &quot;undefiniertem&quot; Wert? :p</p>
</blockquote>
<p>Nein, eher so groß wie der Unterschied zwischen &quot;liefert einen ungültigen/undefinierten Wert&quot; und &quot;liefert gar keinen Wert, weil die Festplatte formatiert wird&quot;.</p>
<p>Mein Compiler liefert bei ungültigen Indizes manchmal gar keine Werte mehr, sondern das Programm stürzt einfach ab. Das ist schon ein Unterschied zu einem falschen Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219542</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 30 Jan 2007 07:28:37 GMT</pubDate></item></channel></rss>