<?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[this-Zeiger]]></title><description><![CDATA[<p>Kann mir mal bitte einer den this-Zeiger erklären und wozu der gut ist?<br />
Oder kennt jemand ne Seite, wo das gut erklärt ist??</p>
<p>DANKE!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128747/this-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 22:00:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128747.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Dec 2005 19:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 19:13:14 GMT]]></title><description><![CDATA[<p>Kann mir mal bitte einer den this-Zeiger erklären und wozu der gut ist?<br />
Oder kennt jemand ne Seite, wo das gut erklärt ist??</p>
<p>DANKE!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936102</guid><dc:creator><![CDATA[Ania87]]></dc:creator><pubDate>Tue, 06 Dec 2005 19:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 19:28:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p><a href="http://www.volkard.de/vcppkold/this.html" rel="nofollow">Hier</a> ist es imho relativ einfach beschrieben, wozu der this-Zeiger da ist.</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936122</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Tue, 06 Dec 2005 19:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 20:26:35 GMT]]></title><description><![CDATA[<p>hm... ehrlich gesagt hat mich die seite nicht viel weitergebracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>ich weiß jetzt, dass wo zwei zeiger irgendwo hinzeigen, dass sie auf dasselbe objekt zeigen...</p>
<p>aber schlauer bin ich noch nicht...</p>
<p>deswegen HELP!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936182</guid><dc:creator><![CDATA[Ania87]]></dc:creator><pubDate>Tue, 06 Dec 2005 20:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 20:48:54 GMT]]></title><description><![CDATA[<p><a href="https://www.google.de/search?&amp;q=%22this%20zeiger%22%20c%2B%2B" rel="nofollow">Google: &quot;this zeiger&quot; c++</a><br />
<em>this</em> ist schlicht ein Zeiger &quot;auf sich selbst&quot;; der Zeiger auf genau das Objekt für das du (gerade) eine Methode aufrufst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936202</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 06 Dec 2005 20:48:54 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 21:45:28 GMT]]></title><description><![CDATA[<p>aber wozu ist der dann gut??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936245</guid><dc:creator><![CDATA[Ania87]]></dc:creator><pubDate>Tue, 06 Dec 2005 21:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Tue, 06 Dec 2005 22:18:58 GMT]]></title><description><![CDATA[<p>Wenn du zum Beispiel bei einem Operator eine Referenz zurückgeben musst:</p>
<pre><code class="language-cpp">const testklasse&amp; testklasse::operator=(const testklasse&amp; rechts){
   //...
   return *this;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/936264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936264</guid><dc:creator><![CDATA[Der Knirps]]></dc:creator><pubDate>Tue, 06 Dec 2005 22:18:58 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Wed, 07 Dec 2005 08:05:01 GMT]]></title><description><![CDATA[<p>Damit du auf Membervariablen und Memberfunktionen zugreifen kannst! (this-&gt; brauch man aber nicht explizit schreiben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936356</guid><dc:creator><![CDATA[................]]></dc:creator><pubDate>Wed, 07 Dec 2005 08:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Wed, 07 Dec 2005 09:57:09 GMT]]></title><description><![CDATA[<p>danke für eure hilfe, so richtig sagt mir das alles immernoch nichts, aber liegt wahrscheinlich daran, dass ich erst grad mit oop angefabgen hab...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936446</guid><dc:creator><![CDATA[Ania87]]></dc:creator><pubDate>Wed, 07 Dec 2005 09:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Thu, 08 Dec 2005 12:54:50 GMT]]></title><description><![CDATA[<p>Ania87 schrieb:</p>
<blockquote>
<p>danke für eure hilfe, so richtig sagt mir das alles immernoch nichts, aber liegt wahrscheinlich daran, dass ich erst grad mit oop angefabgen hab...</p>
</blockquote>
<p>Also: Der this-Zeiger ist ein ganz normaler Zeiger, den du innerhalb von Element-Funktionen benutzen kannst und der auf das Objekt zeigt, dessen Elementfunktion du aufrufst.</p>
<p>Beispiel:<br />
Du hast ein Objekt obj der Klasse Foo:</p>
<pre><code class="language-cpp">class Foo
{
   ...
};

// ...
int main()
{
    Foo obj;
   // ...
}
</code></pre>
<p>Wie jedes andere Objekt auch, besitzt obj eine Adresse. Diese kannst du leicht herausfinden in dem du schreibst:</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot; address of obj: &quot; &lt;&lt; &amp;obj &lt;&lt; std::endl;
</code></pre>
<p>Wie aber kannst du die Adresse von obj innerhalb einer Elementfunktion von Foo herausfinden? Um dies ebenfalls tun zu können gibt es den Zeiger this. Innerhalb einer Elementfunktion schreibst du</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;address of obj: &quot; &lt;&lt; this &lt;&lt; std::endl;
</code></pre>
<p>Woher aber weiß die Elementfunktion die Adresse von dem Objekt, das sie aufgerufen hat? Das weiß sie, da bei jedem Memberfunktionsaufruf implizit der this-Zeiger mit der Adresse des aufzurufenden Objekts initialisiert wird.<br />
Dank dieser Übergabe weiß die Elementfunktion auch, von welchem Objekt sie die Daten bearbeiten/ausgeben/etc. soll.</p>
<p>Beispiel:<br />
Du hast wieder die Klasse Foo. Zusätzlich aber Zwei Instanzen dieser Klasse obj1 und obj2.</p>
<pre><code class="language-cpp">class Foo
{
    size_t x, y;

    public:
      Foo(size_t x_, size_t y_) x(x_), y(y_) {}
      void do_something()
      {
          std::cout &lt;&lt; &quot;x = &quot; &lt;&lt; x &lt;&lt; &quot;; y = &quot; &lt;&lt; y &lt;&lt; std::endl;
      }
};

int main()
{
    Foo obj1(9, 99), obj2(18, 180);

    obj1.do_something();
    obj2.do_something();

    return 0;
}
</code></pre>
<p>Woher weiß hier die Element-Funktion do_something(), die für obj1 aufgerufen wird, dass sie die Variablen von obj1 ausgeben soll und nicht die von obj2? (Umgekehrtes gilt für do_something() im Zusammenhang mit dem Objekt obj2).<br />
Dank dem this-Zeiger!<br />
Dieser Zeiger, der - wie bereits erwähnt - implizit der Element-Funktion übergeben wird, wird dereferenziert und die Variablen x und/oder y, die sich an dieser Adresse befinden werden angezeigt. =&gt; Da innerhalb einer Element-Funktion, die obj1 aufgerufen hat, der this-Zeiger die Adresse von obj1 beinhaltet, werden x und y von Obj1 angezeigt. (Umgekehrtes gilt hier wiederrum für den zweiten Aufruf von do_something im Zusammenhang mit obj2).</p>
<p>/edit: die Zeile</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;x = &quot; &lt;&lt; x &lt;&lt; &quot;; y = &quot; &lt;&lt; y &lt;&lt; std::endl;
</code></pre>
<p>innerhalb der Memberfunktion do_something() kannst du (eventuell zum besseren Verständnis) auch durch die folgende ersetzen:</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;x = &quot; &lt;&lt; this-&gt;x &lt;&lt; &quot;; y = &quot; &lt;&lt; this-&gt;y &lt;&lt; std::endl; // bewirkt das gleiche
</code></pre>
<p>Jetzt wird es denke ich (noch) klarer: Es werden die Daten des Objekts, auf das this zeigt, ausgegeben.</p>
<p>Hier vielleicht noch was dazu: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39465.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39465.html</a>.</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937264</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Thu, 08 Dec 2005 12:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to this-Zeiger on Thu, 08 Dec 2005 13:11:59 GMT]]></title><description><![CDATA[<p>Danke schön, ich finde dass hast du mir jetzt sehr verständlich erklärt !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/937291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937291</guid><dc:creator><![CDATA[Ania87]]></dc:creator><pubDate>Thu, 08 Dec 2005 13:11:59 GMT</pubDate></item></channel></rss>