<?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[-&amp;gt; operator verständnisproblem]]></title><description><![CDATA[<p>sry, bin leider bei der forumsuche nicht fündig geworden, und irgendwie hat mir die erläuterung aus kap. 11.10 &quot;The C++ Programming Language&quot; seltsamerweiße gar nichts gebracht <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="😕"
    /> (der fängt da einfach so mit irgendeinem beispiel an, den ich nicht verstehe <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="😞"
    /> ) In der Doku steht auch nur was dazu, wie man das -&gt; ding anwendet.<br />
Hab mir als beispiel die #include-datei &quot;LIST&quot; angeschaut, aber daraus:</p>
<pre><code class="language-cpp">_Tptr operator-&gt;() const {return (&amp;**this); }
 //für iterator definiert
 //_Tptr bedeutet imho einfach T*
//aber was zum henker ist &amp;**this ??
</code></pre>
<p>...werde ich leider auch nicht schlauer, (vor allem, weil * operator auch schon überladen wurde!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> )<br />
=&gt; Hilfe, ich raff das nicht!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Deswegen die frage: was gibt das -&gt; ding eigentlich zurück? was ist der rückgabewert von diesem operator? ich kann mir irgendwie nicht vorstellen, dass es einfach einen zeiger zurückgibt, denn sowas würde dem compiler wohl nicht so gut schmecken:</p>
<pre><code class="language-cpp">struct myStruct{
 int a;
};

myStruct my_struct;
(&amp;my_struct)a=100; 
//statt (&amp;my_struct)-&gt;a=100; ??? 
//(&amp;my_struct) ist doch ein pointer!?
</code></pre>
<p>wenn mir das jemand einleuchtend erklären würde, wäre ich sehr dankbar! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178231/gt-operator-verständnisproblem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 18:19:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178231.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Apr 2007 12:11:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to -&amp;gt; operator verständnisproblem on Mon, 09 Apr 2007 12:14:13 GMT]]></title><description><![CDATA[<p>sry, bin leider bei der forumsuche nicht fündig geworden, und irgendwie hat mir die erläuterung aus kap. 11.10 &quot;The C++ Programming Language&quot; seltsamerweiße gar nichts gebracht <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="😕"
    /> (der fängt da einfach so mit irgendeinem beispiel an, den ich nicht verstehe <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="😞"
    /> ) In der Doku steht auch nur was dazu, wie man das -&gt; ding anwendet.<br />
Hab mir als beispiel die #include-datei &quot;LIST&quot; angeschaut, aber daraus:</p>
<pre><code class="language-cpp">_Tptr operator-&gt;() const {return (&amp;**this); }
 //für iterator definiert
 //_Tptr bedeutet imho einfach T*
//aber was zum henker ist &amp;**this ??
</code></pre>
<p>...werde ich leider auch nicht schlauer, (vor allem, weil * operator auch schon überladen wurde!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> )<br />
=&gt; Hilfe, ich raff das nicht!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Deswegen die frage: was gibt das -&gt; ding eigentlich zurück? was ist der rückgabewert von diesem operator? ich kann mir irgendwie nicht vorstellen, dass es einfach einen zeiger zurückgibt, denn sowas würde dem compiler wohl nicht so gut schmecken:</p>
<pre><code class="language-cpp">struct myStruct{
 int a;
};

myStruct my_struct;
(&amp;my_struct)a=100; 
//statt (&amp;my_struct)-&gt;a=100; ??? 
//(&amp;my_struct) ist doch ein pointer!?
</code></pre>
<p>wenn mir das jemand einleuchtend erklären würde, wäre ich sehr dankbar! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262205</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to -&amp;gt; operator verständnisproblem on Mon, 09 Apr 2007 12:26:48 GMT]]></title><description><![CDATA[<p>Andrey schrieb:</p>
<blockquote>
<p>Deswegen die frage: was gibt das -&gt; ding eigentlich zurück? was ist der rückgabewert von diesem operator? ich kann mir irgendwie nicht vorstellen, dass es einfach einen zeiger zurückgibt, denn sowas würde dem compiler wohl nicht so gut schmecken:</p>
</blockquote>
<p>doch, einfach einen zeiger.<br />
wenn man den selbergebauten op-&gt; aufruft, gibt der etwas zurück, worauf man einen op-&gt; aufrufen kann. so können sich beliebig viele op-&gt; verschachteln, ohne daß man was dazu tut. beendet wird die ganze kacke dann, indem ein zeiger zurückgegeben wird, der nen feinen eingebauten op-&gt; hat.</p>
<p>mit &amp;* meint man die adresse von dem ding, das der op* zurückgibt, also die adresse von dem ding, wo der selbergebaute zerigerersatz &quot;hinzeigt&quot;.<br />
anscheinend ist _Tptr so ein zeigerersatz.<br />
gesucht ist also die adresse des elements, das man mit **this meinen würde. wobeio *this das objekt ist, das beim aufruf den op-&gt; links vom op steht.<br />
bei foo-&gt;bla(); ist *this ein anderer name für foo.<br />
foo-&gt;bla();<br />
macht<br />
foo.operator-&gt;()-&gt;bla();<br />
macht<br />
(foo.operator-&gt;())-&gt;bla();<br />
macht // return (&amp;**this);<br />
(&amp;*foo)-&gt;bla();<br />
jo, genau wie beabsichtigt.<br />
beachte, daß (&amp;*foo)-&gt;bla(); einfach so geht, weil &amp;*foo ein zeiger ist und nen eingebauten op-&gt; hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262211</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 09 Apr 2007 12:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to -&amp;gt; operator verständnisproblem on Mon, 09 Apr 2007 13:11:27 GMT]]></title><description><![CDATA[<p>so, volkard = du bist der held! <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="😃"
    /><br />
ich glaub ich habs jetzt verstanden:</p>
<pre><code>&quot;&amp;**this&quot; bedeutet bei dem iterator also:

(*this)=der gewöhnliche op* liefert die referenz auf den iterator selbst 
(type: iterator&amp;)

*(*this)=der überladene op* liefert referenz auf den gespeicherten wert T 
(type: T&amp;)

&amp;(*(*this))=das ist wieder der gewöhnliche adressierungsoperator op&amp;
der einen stinknormalen zeiger auf T (also type: T* ) liefert,
und das ist genau das, was der -&gt; operator zurückgeben muss
</code></pre>
<p>juhu, endlich hab ichs gecheggt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> danke volkard <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262253</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Mon, 09 Apr 2007 13:11:27 GMT</pubDate></item></channel></rss>