<?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[Pointertyp konvertieren]]></title><description><![CDATA[<p>Hey <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich hab ein kleines Problem und weiß nicht genau wie ich es angehen soll.</p>
<p>Folgende Klassenstruktur:</p>
<pre><code class="language-cpp">class A {
public:
  A() {}
};

class B : public A {
public:
  void machWas() {}
};
</code></pre>
<p>und dieser Code:</p>
<pre><code class="language-cpp">A* object = getObject();
B* b = object; // Hier muss konbertiert werden
b-&gt;machWas()
</code></pre>
<p>getObject() liefert mir ein Objekt einer abgeleiteten Klasse von A. In meinem Fall gibt es viele Klassen, die von A erben. Zur Compile-Zeit weiß man nicht, welches.<br />
An bestimmten Stellen jedoch kann man sich sicher sein, dass z.B. eine Instanz von B zurückgeliefert wird (siehe Beispiel). In diesem Fall muss man doch irgendwie den Pointertyp konvertieren können.</p>
<p>Ich hoffe, ihr könnt mir da weiterhelfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270505/pointertyp-konvertieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 02:25:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270505.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Jul 2010 18:45:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointertyp konvertieren on Tue, 13 Jul 2010 18:45:04 GMT]]></title><description><![CDATA[<p>Hey <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich hab ein kleines Problem und weiß nicht genau wie ich es angehen soll.</p>
<p>Folgende Klassenstruktur:</p>
<pre><code class="language-cpp">class A {
public:
  A() {}
};

class B : public A {
public:
  void machWas() {}
};
</code></pre>
<p>und dieser Code:</p>
<pre><code class="language-cpp">A* object = getObject();
B* b = object; // Hier muss konbertiert werden
b-&gt;machWas()
</code></pre>
<p>getObject() liefert mir ein Objekt einer abgeleiteten Klasse von A. In meinem Fall gibt es viele Klassen, die von A erben. Zur Compile-Zeit weiß man nicht, welches.<br />
An bestimmten Stellen jedoch kann man sich sicher sein, dass z.B. eine Instanz von B zurückgeliefert wird (siehe Beispiel). In diesem Fall muss man doch irgendwie den Pointertyp konvertieren können.</p>
<p>Ich hoffe, ihr könnt mir da weiterhelfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1925788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1925788</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Tue, 13 Jul 2010 18:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to Pointertyp konvertieren on Tue, 13 Jul 2010 18:50:20 GMT]]></title><description><![CDATA[<blockquote>
<p>Zur Compile-Zeit weiß man nicht, welches.</p>
</blockquote>
<p>Natürlich weiß man das.</p>
<p>Wenn B von A erbt, kannst du dynamic_cast verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1925791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1925791</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 13 Jul 2010 18:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pointertyp konvertieren on Tue, 13 Jul 2010 18:51:55 GMT]]></title><description><![CDATA[<p>Athar schrieb:</p>
<blockquote>
<blockquote>
<p>Zur Compile-Zeit weiß man nicht, welches.</p>
</blockquote>
<p>Natürlich weiß man das.</p>
<p>Wenn B von A erbt, kannst du dynamic_cast verwenden.</p>
</blockquote>
<p>Wenn A mindestens eine virtuelle Funktion hat (der Destruktor bietet sich an).</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1925793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1925793</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 13 Jul 2010 18:51:55 GMT</pubDate></item><item><title><![CDATA[Reply to Pointertyp konvertieren on Tue, 13 Jul 2010 19:19:02 GMT]]></title><description><![CDATA[<p>Vielen Dank, es funktioniert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1925806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1925806</guid><dc:creator><![CDATA[th3AddY]]></dc:creator><pubDate>Tue, 13 Jul 2010 19:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to Pointertyp konvertieren on Tue, 13 Jul 2010 19:20:22 GMT]]></title><description><![CDATA[<p>Wenn tatsächlich bekannt ist, dass das an der Stelle ein &quot;B&quot; ist, tuts auch ein static_cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1925810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1925810</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Tue, 13 Jul 2010 19:20:22 GMT</pubDate></item></channel></rss>