<?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 und &amp;quot;this&amp;quot;  -GELÖST-]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Kunde

{
    public:
    int Alter;
    int Einkommen;
    int Postleitzahl;
    //Prototypen
    void AlterSpeichern(Kunde &amp;obj);       //Übergabe per Referenz
    void EinkommenSpeichern(Kunde *obj);  //Übergabe per Zeiger
    void AlterAusgebenUndPLZSpeichern();  //Gibt Alter aus und ruft &quot;PostleitzahlSpeichern&quot; auf.
    void PostleitzahlSpeichern(Kunde *obj);  //Übergabe per Zeiger
};

int main()
{
    Kunde Neu;
    Neu.AlterSpeichern(Neu); //Alter speichern
    Neu.EinkommenSpeichern(&amp;Neu); //Einkommen speichern
    cout&lt;&lt;&quot;Einkommen: &quot;&lt;&lt;Neu.Einkommen&lt;&lt;endl;  //Einkommen ausgeben
    Neu.AlterAusgebenUndPLZSpeichern(); //Alter ausgeben und PLZ speichern
    cout&lt;&lt;&quot;PLZ: &quot;&lt;&lt;Neu.Postleitzahl&lt;&lt;endl; //PLZ speichern
    return 0;
}
//Definitionen der Funktionen

//Übergabe per Referenz
void Kunde::AlterSpeichern(Kunde &amp;obj)
{
  obj.Alter=100;
}
//Übergabe mittels Zeiger
 void Kunde::EinkommenSpeichern(Kunde *obj)
 {
   obj-&gt;Einkommen=200;
 }
//Übergabe mittels Zeiger
void Kunde::PostleitzahlSpeichern(Kunde *obj)
{
   obj-&gt;Postleitzahl=99999;
}
//Gibt das Alter aus und ruft &quot;PostleitzahlSpeichern()&quot; auf.
void Kunde::AlterAusgebenUndPLZSpeichern()
{
   cout&lt;&lt;&quot;Alter: &quot;&lt;&lt;this-&gt;Alter&lt;&lt;endl;
   PostleitzahlSpeichern(this);
}
</code></pre>
<p>Ich möchte bei der Funktion &quot;PostleitzahlSpeichern()&quot; das Objekt gerne per Referenz übergeben, also z.B.</p>
<pre><code class="language-cpp">void Kunde::PostleitzahlSpeichern(Kunde &amp;obj)
{
   obj.Postleitzahl=99999;
}
</code></pre>
<p>Wie muss ich dann aber die Funktion &quot;AlterAusgebenUndPLZSpeichern()&quot; schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294328/referenz-und-quot-this-quot-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 23:26:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294328.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Oct 2011 08:50:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 10:16:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class Kunde

{
    public:
    int Alter;
    int Einkommen;
    int Postleitzahl;
    //Prototypen
    void AlterSpeichern(Kunde &amp;obj);       //Übergabe per Referenz
    void EinkommenSpeichern(Kunde *obj);  //Übergabe per Zeiger
    void AlterAusgebenUndPLZSpeichern();  //Gibt Alter aus und ruft &quot;PostleitzahlSpeichern&quot; auf.
    void PostleitzahlSpeichern(Kunde *obj);  //Übergabe per Zeiger
};

int main()
{
    Kunde Neu;
    Neu.AlterSpeichern(Neu); //Alter speichern
    Neu.EinkommenSpeichern(&amp;Neu); //Einkommen speichern
    cout&lt;&lt;&quot;Einkommen: &quot;&lt;&lt;Neu.Einkommen&lt;&lt;endl;  //Einkommen ausgeben
    Neu.AlterAusgebenUndPLZSpeichern(); //Alter ausgeben und PLZ speichern
    cout&lt;&lt;&quot;PLZ: &quot;&lt;&lt;Neu.Postleitzahl&lt;&lt;endl; //PLZ speichern
    return 0;
}
//Definitionen der Funktionen

//Übergabe per Referenz
void Kunde::AlterSpeichern(Kunde &amp;obj)
{
  obj.Alter=100;
}
//Übergabe mittels Zeiger
 void Kunde::EinkommenSpeichern(Kunde *obj)
 {
   obj-&gt;Einkommen=200;
 }
//Übergabe mittels Zeiger
void Kunde::PostleitzahlSpeichern(Kunde *obj)
{
   obj-&gt;Postleitzahl=99999;
}
//Gibt das Alter aus und ruft &quot;PostleitzahlSpeichern()&quot; auf.
void Kunde::AlterAusgebenUndPLZSpeichern()
{
   cout&lt;&lt;&quot;Alter: &quot;&lt;&lt;this-&gt;Alter&lt;&lt;endl;
   PostleitzahlSpeichern(this);
}
</code></pre>
<p>Ich möchte bei der Funktion &quot;PostleitzahlSpeichern()&quot; das Objekt gerne per Referenz übergeben, also z.B.</p>
<pre><code class="language-cpp">void Kunde::PostleitzahlSpeichern(Kunde &amp;obj)
{
   obj.Postleitzahl=99999;
}
</code></pre>
<p>Wie muss ich dann aber die Funktion &quot;AlterAusgebenUndPLZSpeichern()&quot; schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134587</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sun, 23 Oct 2011 10:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 09:06:35 GMT]]></title><description><![CDATA[<p><code>PostleitzahlSpeichern(*this);</code> Das *this, macht, dass man aus dem this-Zeiger wieder das zugehörige Objekt erhält, was man dann übergeben kann. Das vorgestellte this-&gt; ist in Klassenmethoden sowieso immer implizit und kann weggelassen werden, wenn man es nicht braucht, um Uneindeutigkeiten zu klären.</p>
<p>Zwei Anmerkungen noch:<br />
1. Ich hoffe das ist nur ein Test, um mal alle Möglichkeiten auszuprobieren.<br />
2. Ein arithmetischer Datentyp wie int ist ein denkbar ungeeignet für eine Postleizahl. In der Alltagssprache nennt man es zwar Zahl, aber technisch gesehen ist es eine Ziffernfolge. Schließlich kann man mit Postleitzahlen nicht sinnvoll rechnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134592</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 23 Oct 2011 09:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 09:11:44 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>int ist ein denkbar ungeeignet für eine Postleizahl</p>
</blockquote>
<p>Kann ich bestätigen.<br />
Für Oelsnitz bekomme ich sogar einen Compilerfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134593</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 23 Oct 2011 09:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 09:32:49 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p><code>PostleitzahlSpeichern(*this);</code></p>
</blockquote>
<p>Ok, danke für den Tip.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Zwei Anmerkungen noch:<br />
1. Ich hoffe das ist nur ein Test, um mal alle Möglichkeiten auszuprobieren.</p>
</blockquote>
<p>Ja.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>2. Ein arithmetischer Datentyp wie int ist ein denkbar ungeeignet für eine Postleizahl. In der Alltagssprache nennt man es zwar Zahl, aber technisch gesehen ist es eine Ziffernfolge. Schließlich kann man mit Postleitzahlen nicht sinnvoll rechnen.</p>
</blockquote>
<p>Ok.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134599</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sun, 23 Oct 2011 09:32:49 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 09:37:01 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>int ist ein denkbar ungeeignet für eine Postleizahl</p>
</blockquote>
<p>Kann ich bestätigen.<br />
Für Oelsnitz bekomme ich sogar einen Compilerfehler.</p>
</blockquote>
<p>Komischer Compiler.<br />
Postleitzahl=9376;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134600</guid><dc:creator><![CDATA[tütütüdü...aaaaaa]]></dc:creator><pubDate>Sun, 23 Oct 2011 09:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 10:06:12 GMT]]></title><description><![CDATA[<p>tütütüdü...aaaaaa schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>int ist ein denkbar ungeeignet für eine Postleizahl</p>
</blockquote>
<p>Kann ich bestätigen.<br />
Für Oelsnitz bekomme ich sogar einen Compilerfehler.</p>
</blockquote>
<p>Komischer Compiler.<br />
Postleitzahl=9376;</p>
</blockquote>
<p>Die korrekte PLZ lautet 09376.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134618</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 23 Oct 2011 10:06:12 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 10:18:37 GMT]]></title><description><![CDATA[<p>Aber ist es nicht so, dass er eigentlich alle <code>this</code> , alle Objekte in den Methoden und alle Übergabeparameter in den Memberfunktionen weglassen kann, da es in diesem Fall sowieso nur auf die Member der eigenen Klasse zugegriffen wird..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134622</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Sun, 23 Oct 2011 10:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Referenz und &amp;quot;this&amp;quot;  -GELÖST- on Sun, 23 Oct 2011 10:16:31 GMT]]></title><description><![CDATA[<p>[Rewind] schrieb:</p>
<blockquote>
<p>Aber ist es nicht so, dass er eigentlich alle <code>this</code> , alle Objekte in den Klassen und alle Übergabeparameter in den Memberfunktionen weglassen kann, da es in diesem Fall sowieso nur auf die Member der eigenen Klasse zugegriffen wird..?</p>
</blockquote>
<p>Jain. Technisch gesehen kann er nur das this-&gt; in Zeile 50 weglassen. Vom Sinn her gesehen ist es im Rest des Programmes natürlich grober Unfug, nichtstatische Memberfunktionen zu haben die ein übergebenes Objekt ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2134625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2134625</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 23 Oct 2011 10:16:31 GMT</pubDate></item></channel></rss>