<?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[Der this zeiger]]></title><description><![CDATA[<p>guten abend</p>
<p>ich würde gerne wissen wann der this zeiger eigentlich zum einsatz kommen sollte. ich weiss durchaus was der this zeiger ist und wie man den syntax verwendet. aber wirklich sinn ausser in einem fall habe ich noch keinen gefunden.</p>
<p>nehmen wir als beispiel am besten ein array mit 10 objekten einer klasse mit dem wir dann arbeiten. wenn ich jetzt z.B. in einem methoden rumpf auf klassen-elemente zugreiffe, wird der this zeiger ja garnicht benötigt, da ohne der scope verwendung bereits das element angesprochen wird, welches zum this objekt gehört. beispiel:</p>
<pre><code class="language-cpp">void MyClass::MyMethod()
{
	this-&gt;var = &quot;Hello&quot;;
	//.. ist genau gleich bedeutend mit...
	var = &quot;Hello&quot;;
}
</code></pre>
<p>hier macht für mich der this zeiger also keinen sinn. ich denke auch wenn ich eine methode im methoden rumpf aufrufe, wird die methode des this objektes aufgerufen. es ist also nicht notwendig folgendes zu schreiben:</p>
<pre><code class="language-cpp">void MyClass::MyMethod()
{
	this-&gt;DoAnything();
	//.. ist genau gleich bedeutend mit...
	DoAnything();
}
</code></pre>
<p>insofern. wann macht ein this zeiger sinn? und speziell: wann gibt es konflikte, wenn man den this zeiger <strong>nicht</strong> benutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229639/der-this-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 19:21:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229639.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Dec 2008 18:14:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 18:14:02 GMT]]></title><description><![CDATA[<p>guten abend</p>
<p>ich würde gerne wissen wann der this zeiger eigentlich zum einsatz kommen sollte. ich weiss durchaus was der this zeiger ist und wie man den syntax verwendet. aber wirklich sinn ausser in einem fall habe ich noch keinen gefunden.</p>
<p>nehmen wir als beispiel am besten ein array mit 10 objekten einer klasse mit dem wir dann arbeiten. wenn ich jetzt z.B. in einem methoden rumpf auf klassen-elemente zugreiffe, wird der this zeiger ja garnicht benötigt, da ohne der scope verwendung bereits das element angesprochen wird, welches zum this objekt gehört. beispiel:</p>
<pre><code class="language-cpp">void MyClass::MyMethod()
{
	this-&gt;var = &quot;Hello&quot;;
	//.. ist genau gleich bedeutend mit...
	var = &quot;Hello&quot;;
}
</code></pre>
<p>hier macht für mich der this zeiger also keinen sinn. ich denke auch wenn ich eine methode im methoden rumpf aufrufe, wird die methode des this objektes aufgerufen. es ist also nicht notwendig folgendes zu schreiben:</p>
<pre><code class="language-cpp">void MyClass::MyMethod()
{
	this-&gt;DoAnything();
	//.. ist genau gleich bedeutend mit...
	DoAnything();
}
</code></pre>
<p>insofern. wann macht ein this zeiger sinn? und speziell: wann gibt es konflikte, wenn man den this zeiger <strong>nicht</strong> benutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630434</guid><dc:creator><![CDATA[thissy]]></dc:creator><pubDate>Sun, 14 Dec 2008 18:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 18:20:15 GMT]]></title><description><![CDATA[<p>Hatten wir erst gerade:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-228857-and-highlight-is-this+zeiger.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-228857-and-highlight-is-this+zeiger.html</a></p>
<p>achja und hier:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-227871-and-highlight-is-this+zeiger.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-227871-and-highlight-is-this+zeiger.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630436</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Dec 2008 18:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 18:44:16 GMT]]></title><description><![CDATA[<p>aah. alles klar nun. grundsätzlich werden this zeiger nur dann gebraucht, wenn man innerhalb einer methode des this objektes eine methode einer anderen klasse aufruft und diese erwartet als parameter einen zeiger auf das objekt.</p>
<p>oder aber wenn man z.B. explizit auf das klassenelement zugreiffen möchte, wenn z.B. der variablen name der methode gleichnamig ist, oder? z.B.</p>
<pre><code class="language-cpp">void MyClass::Methode(int i)
{
    this-&gt;i = i;
}
</code></pre>
<p>korrekt? ich muss zugeben ich habe immer einen m_ prefix für sollche situationen verwendet. das werde ich nun aber ändern :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630447</guid><dc:creator><![CDATA[thissy]]></dc:creator><pubDate>Sun, 14 Dec 2008 18:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 18:58:00 GMT]]></title><description><![CDATA[<p>Das mit dem Namen überdecken kannst du auch ohne den this-Zeiger lösen.</p>
<p>Aber das sind noch :<br />
- der explizite Destrukor-Aufruf.<br />
- delete this<br />
- Vergleich mit this für die Implementierung des =-Operators</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630453</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Dec 2008 18:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 19:22:24 GMT]]></title><description><![CDATA[<blockquote>
<p>Das mit dem Namen überdecken kannst du auch ohne den this-Zeiger lösen.</p>
</blockquote>
<p>und wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630462</guid><dc:creator><![CDATA[thissy]]></dc:creator><pubDate>Sun, 14 Dec 2008 19:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 19:38:41 GMT]]></title><description><![CDATA[<p>thissy schrieb:</p>
<blockquote>
<p>ich muss zugeben ich habe immer einen m_ prefix für sollche situationen verwendet. das werde ich nun aber ändern :xmas1:</p>
</blockquote>
<p>Ich finde es nicht gut, Namenskonflikte herbeizuführen, wenn vorher ja alles gut ging. Die <code>m_</code> -Schreibweise ist durchaus legitim (oder halt <code>My</code> , <code>my</code> , ...), ich würde die beibehalten. Ich selber handhabe es selber oft so, dass ich Parametern (in Konstruktoren und Settern) ein <code>New</code> -Präfix vorne dran hänge, aber das ist natürlich Geschmackssache.</p>
<p>drakon schrieb:</p>
<blockquote>
<p>Aber das sind noch :<br />
- der explizite Destrukor-Aufruf.<br />
- delete this<br />
- Vergleich mit this für die Implementierung des =-Operators</p>
</blockquote>
<p>Wobei man die ersten beiden normalerweise nicht braucht und dabei gut aufpassen muss, was man tut. Nicht, dass er noch auf dumme Ideen kommt... <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>Den dritten brauche ich persönlich auch nicht, da ich den Zuweisungsoperator meistens mit Copy&amp;Swap implementiere. Aber Selbstzuweisungen kommen ja sowieso relativ selten vor...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630468</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Dec 2008 19:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 19:55:37 GMT]]></title><description><![CDATA[<p>thissy schrieb:</p>
<blockquote>
<blockquote>
<p>Das mit dem Namen überdecken kannst du auch ohne den this-Zeiger lösen.</p>
</blockquote>
<p>und wie?</p>
</blockquote>
<p>Steht doch in einem meiner Links..</p>
<pre><code class="language-cpp">class Bar
{
    int a;
     void foo(int a)
     {
         Bar::a = a; // temp. a in das member-a zuweisen
     }
};
</code></pre>
<blockquote>
<p>Den dritten brauche ich persönlich auch nicht, da ich den Zuweisungsoperator meistens mit Copy&amp;Swap implementiere. Aber Selbstzuweisungen kommen ja sowieso relativ selten vor...</p>
</blockquote>
<p>Den ersten Satzt verstehe ich, aber der zweite?! <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="😕"
    /><br />
Willst du damit sagen, dass man den Fall nicht miteinbeziehen muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630483</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Dec 2008 19:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 19:58:39 GMT]]></title><description><![CDATA[<p>this kann beispielsweise in Bäumen ein Kind seinem Vater gegenüber identifizieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630485</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 14 Dec 2008 19:58:39 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 20:09:47 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Willst du damit sagen, dass man den Fall nicht miteinbeziehen muss?</p>
</blockquote>
<p>Kommt auch drauf an. Wenn dadurch, dass man Selbstzuweisungen nicht separat abfragt, kein Nachteil bezüglich der Semantik entsteht (also falsche Zuweisung), ist die Abfrage eigentlich vernachlässigbar. Ich meine, der durch die daraus folgenden Kopien entstehende Performancenachteil hat der User dann selbst zu verschulden.</p>
<p>Wenn man aber dadurch z.B. Exceptionsicherheit aufs Spiel setzt, ist das wieder etwas anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630497</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 14 Dec 2008 20:09:47 GMT</pubDate></item><item><title><![CDATA[Reply to Der this zeiger on Sun, 14 Dec 2008 20:32:06 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Willst du damit sagen, dass man den Fall nicht miteinbeziehen muss?</p>
</blockquote>
<p>Kommt auch drauf an. Wenn dadurch, dass man Selbstzuweisungen nicht separat abfragt, kein Nachteil bezüglich der Semantik entsteht (also falsche Zuweisung), ist die Abfrage eigentlich vernachlässigbar. Ich meine, der durch die daraus folgenden Kopien entstehende Performancenachteil hat der User dann selbst zu verschulden.</p>
<p>Wenn man aber dadurch z.B. Exceptionsicherheit aufs Spiel setzt, ist das wieder etwas anderes.</p>
</blockquote>
<p>Also ich erstelle für eine Klasse, die lediglich sich selbst verwaltenden Objekte besitzt keinen Kopierkonstruktor. Bei allem anderem muss man mit problematischen Selbstzuweisungen rechnen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630511</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Dec 2008 20:32:06 GMT</pubDate></item></channel></rss>