<?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[Pointer einer Subklasse kann nicht in Pointer der Baseklasse konvertiert werden:]]></title><description><![CDATA[<p>Hallöchen,</p>
<p>Ich hab vereinfacht folgende Situation:</p>
<pre><code class="language-cpp">class PlayableObject{
    // bla bla
};

class Ghost : public PlayableObject{
    // bla bla
};

class Agent{
public:
    Agent(PlayableObject* obj)
    :m_plObj(obj){
    }
protected:
    PlayableObject* m_plObj;

};
class GhostAgent : public Agent{
    GhostAgent(Ghost* ghost)
    :Agent(ghost){
    }
};
</code></pre>
<p>Der Compiler sagt mir:<br />
error C2664: 'Agent::Agent(PlayableObject *const )': Konvertierung des Parameters 1 von 'Ghost *' in 'PlayableObject *' nicht möglich</p>
<p>Aber Ghost ist doch eine Subklasse von PlayableObject, warum kann dann ein PlayableObject-Pointer nicht auf einen Ghost zeigen bzw. mit einem Ghost-Pointer initialisiert werden??</p>
<p>ich dachte mir, dass es vielleicht Typenprobleme mit den Pointern gibt, und hab mal das probiert:</p>
<pre><code class="language-cpp">hostAgent(Ghost* ghost)
    :Agent(&amp;(*ghost)){
    }
</code></pre>
<p>funktioniert aber auch nicht.<br />
wo ist also das Problem???</p>
<p>Vielen Dank für eure Hilfe!!!</p>
<p>Grüße,<br />
anchelito</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213049/pointer-einer-subklasse-kann-nicht-in-pointer-der-baseklasse-konvertiert-werden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 13:19:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213049.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 May 2008 17:08:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer einer Subklasse kann nicht in Pointer der Baseklasse konvertiert werden: on Tue, 13 May 2008 17:09:28 GMT]]></title><description><![CDATA[<p>Hallöchen,</p>
<p>Ich hab vereinfacht folgende Situation:</p>
<pre><code class="language-cpp">class PlayableObject{
    // bla bla
};

class Ghost : public PlayableObject{
    // bla bla
};

class Agent{
public:
    Agent(PlayableObject* obj)
    :m_plObj(obj){
    }
protected:
    PlayableObject* m_plObj;

};
class GhostAgent : public Agent{
    GhostAgent(Ghost* ghost)
    :Agent(ghost){
    }
};
</code></pre>
<p>Der Compiler sagt mir:<br />
error C2664: 'Agent::Agent(PlayableObject *const )': Konvertierung des Parameters 1 von 'Ghost *' in 'PlayableObject *' nicht möglich</p>
<p>Aber Ghost ist doch eine Subklasse von PlayableObject, warum kann dann ein PlayableObject-Pointer nicht auf einen Ghost zeigen bzw. mit einem Ghost-Pointer initialisiert werden??</p>
<p>ich dachte mir, dass es vielleicht Typenprobleme mit den Pointern gibt, und hab mal das probiert:</p>
<pre><code class="language-cpp">hostAgent(Ghost* ghost)
    :Agent(&amp;(*ghost)){
    }
</code></pre>
<p>funktioniert aber auch nicht.<br />
wo ist also das Problem???</p>
<p>Vielen Dank für eure Hilfe!!!</p>
<p>Grüße,<br />
anchelito</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508304</guid><dc:creator><![CDATA[anchelito]]></dc:creator><pubDate>Tue, 13 May 2008 17:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer einer Subklasse kann nicht in Pointer der Baseklasse konvertiert werden: on Tue, 13 May 2008 17:14:36 GMT]]></title><description><![CDATA[<p>Kompiiert einwandfrei durch (einfach durch copy and paste und dann kompiliert), Fehler steckt nicht in deinem Code.</p>
<p>EDIT: Jedenfalls nicht in dem von dir geposteten Stück</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508305</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Tue, 13 May 2008 17:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer einer Subklasse kann nicht in Pointer der Baseklasse konvertiert werden: on Tue, 13 May 2008 17:16:29 GMT]]></title><description><![CDATA[<p>hmm ... ich hab jetzt einfach mal das ganze Projekt neu erstellt. jetzt funktionierts auch bei mir. Echt strange.</p>
<p>Vielen Dank!!! Hast mir sehr geholfen!</p>
<p>anchelito</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1508307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508307</guid><dc:creator><![CDATA[anchelito]]></dc:creator><pubDate>Tue, 13 May 2008 17:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer einer Subklasse kann nicht in Pointer der Baseklasse konvertiert werden: on Tue, 13 May 2008 17:22:04 GMT]]></title><description><![CDATA[<blockquote>
<p>Konvertierung des Parameters 1 von 'Ghost *' in 'PlayableObject *' nicht möglich</p>
</blockquote>
<p>In der Initialisierungsliste der &quot;Agent&quot;-Klasse wird nichts konvertiert.</p>
<blockquote>
<p>warum kann dann ein PlayableObject-Pointer nicht auf einen Ghost zeigen bzw. mit einem Ghost-Pointer initialisiert werden</p>
</blockquote>
<p>Funktioniert und nennt sich Polymorphie.</p>
<blockquote>
<p>(&amp;(*ghost))</p>
</blockquote>
<p><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/1508310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1508310</guid><dc:creator><![CDATA[moagnus]]></dc:creator><pubDate>Tue, 13 May 2008 17:22:04 GMT</pubDate></item></channel></rss>