<?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[Magie von -&amp;gt; ?]]></title><description><![CDATA[<p>Hi</p>
<p>Ich meine mal gelesen zu haben, dass -&gt; immer so weit wie möglich dereferenziert.</p>
<p>Müsste folgendes dann nicht funktionieren:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class foo
{
public:
	void bar()
	{
		std::cout &lt;&lt; &quot;foo::bar&quot;;
	}
};

class PtrToFoo
{
	foo *m_f;

public:
	PtrToFoo( foo *f ) : m_f( f ){}

	foo* operator-&gt;(){ return m_f; }
};

int main()
{
	foo f;

	PtrToFoo *p = new PtrToFoo( &amp;f );

	p-&gt;bar(); //error C2039: 'bar': Ist kein Element von 'PtrToFoo'

	delete p;

	return 0;
}
</code></pre>
<p>Oder trügt mich nur meine Erinnerung bzw. sehe ich das falsch?</p>
<p>gruß<br />
rean</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282687/magie-von-gt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 00:34:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282687.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Feb 2011 15:09:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Magie von -&amp;gt; ? on Thu, 24 Feb 2011 15:09:26 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich meine mal gelesen zu haben, dass -&gt; immer so weit wie möglich dereferenziert.</p>
<p>Müsste folgendes dann nicht funktionieren:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class foo
{
public:
	void bar()
	{
		std::cout &lt;&lt; &quot;foo::bar&quot;;
	}
};

class PtrToFoo
{
	foo *m_f;

public:
	PtrToFoo( foo *f ) : m_f( f ){}

	foo* operator-&gt;(){ return m_f; }
};

int main()
{
	foo f;

	PtrToFoo *p = new PtrToFoo( &amp;f );

	p-&gt;bar(); //error C2039: 'bar': Ist kein Element von 'PtrToFoo'

	delete p;

	return 0;
}
</code></pre>
<p>Oder trügt mich nur meine Erinnerung bzw. sehe ich das falsch?</p>
<p>gruß<br />
rean</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025936</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 24 Feb 2011 15:09:26 GMT</pubDate></item><item><title><![CDATA[Reply to Magie von -&amp;gt; ? on Thu, 24 Feb 2011 15:14:15 GMT]]></title><description><![CDATA[<p>Nur ein überladener <code>operator-&gt;</code> dereferenziert weiter, wenn der zurückgegebene Typ ebenfalls einen solchen Operator bereitstellt. Sobald es sich um einen Zeiger handelt, wird nur noch dieser dereferenziert. Wäre nicht gut, wenn sich die Semantik bei eingebauten Typen ändern würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025937</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 24 Feb 2011 15:14:15 GMT</pubDate></item><item><title><![CDATA[Reply to Magie von -&amp;gt; ? on Thu, 24 Feb 2011 15:14:43 GMT]]></title><description><![CDATA[<p>Aber Dein Objekt p soll wie ein Zeiger sein.<br />
Also</p>
<pre><code class="language-cpp">int main()
{
    foo f;

    PtrToFoo p( &amp;f );

    p-&gt;bar();

    return 0;
}
</code></pre>
<p>Was Du gemacht hattest, was ein Zeiger auf ein Objekt, das wie ein Zeiger sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025939</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 24 Feb 2011 15:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Magie von -&amp;gt; ? on Thu, 24 Feb 2011 15:19:21 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Aber Dein Objekt p soll wie ein Zeiger sein.<br />
Also</p>
<pre><code class="language-cpp">int main()
{
    foo f;

    PtrToFoo p( &amp;f );

    p-&gt;bar();

    return 0;
}
</code></pre>
<p>Was Du gemacht hattest, was ein Zeiger auf ein Objekt, das wie ein Zeiger sein soll.</p>
</blockquote>
<p>Ja, das ist ein stark vereinfachtes Beispiel. In meinem konkreten Anwendungsfall brauche ich Pointer auf PtrToFoo um Polymorphie verwenden zu können.</p>
<p>Danke für die Aufklärung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025942</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 24 Feb 2011 15:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to Magie von -&amp;gt; ? on Thu, 24 Feb 2011 15:29:42 GMT]]></title><description><![CDATA[<p>Also dann</p>
<pre><code class="language-cpp">int main()
{
    foo f;

    PtrToFoo *p = new PtrToFoo( &amp;f );

    (*p)-&gt;bar(); //error C2039: 'bar': Ist kein Element von 'PtrToFoo'

    delete p;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2025951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025951</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 24 Feb 2011 15:29:42 GMT</pubDate></item></channel></rss>