<?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[Überladene virtuelle Elementfunktionen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Habe einen Komischen Fehler bekommen:</p>
<pre><code>error C2664: 'bool Direct3D2DDevice::Draw( const wchar_t *,const Point2I &amp;,const ColorI &amp;)': Konvertierung des Parameters 1 von 'U32' in 'wchar_t *' nicht möglich
</code></pre>
<p>Prototypen:</p>
<pre><code class="language-cpp">virtual bool Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor );
   virtual bool Draw( U32 in_fileID, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor );
</code></pre>
<p>Aufruf bei dem der Fehler kommt:</p>
<pre><code class="language-cpp">bool Direct3D2DDevice::Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) {
   S32 ret = searchTex( in_fileName );
   assert( ret &lt; 0 );

   // Hier passiert der Fehler
   return Draw( static_cast&lt;U32&gt;(ret), &amp;in_dest, &amp;in_vertexColor );
}
</code></pre>
<p>Es müsste doch eigentlich möglich sein Elementfunktionen auf diese Weise zu überladen, oder nicht? Die beiden Draw() sind rein virtuelle Elementfunktionen der Interface-Klasse DisplayDevice:</p>
<pre><code class="language-cpp">virtual bool Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) = 0;
   virtual bool Draw( U32 in_fileID, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) = 0;
</code></pre>
<p>Direct3D2DDevice ist public abgeleitet.</p>
<p>Ich benutze Visual C++ Express Edition SP1.</p>
<p>Akta</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191447/überladene-virtuelle-elementfunktionen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 26 Sep 2026 00:17:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191447.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Sep 2007 12:10:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladene virtuelle Elementfunktionen on Mon, 03 Sep 2007 12:15:53 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Habe einen Komischen Fehler bekommen:</p>
<pre><code>error C2664: 'bool Direct3D2DDevice::Draw( const wchar_t *,const Point2I &amp;,const ColorI &amp;)': Konvertierung des Parameters 1 von 'U32' in 'wchar_t *' nicht möglich
</code></pre>
<p>Prototypen:</p>
<pre><code class="language-cpp">virtual bool Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor );
   virtual bool Draw( U32 in_fileID, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor );
</code></pre>
<p>Aufruf bei dem der Fehler kommt:</p>
<pre><code class="language-cpp">bool Direct3D2DDevice::Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) {
   S32 ret = searchTex( in_fileName );
   assert( ret &lt; 0 );

   // Hier passiert der Fehler
   return Draw( static_cast&lt;U32&gt;(ret), &amp;in_dest, &amp;in_vertexColor );
}
</code></pre>
<p>Es müsste doch eigentlich möglich sein Elementfunktionen auf diese Weise zu überladen, oder nicht? Die beiden Draw() sind rein virtuelle Elementfunktionen der Interface-Klasse DisplayDevice:</p>
<pre><code class="language-cpp">virtual bool Draw( const wchar_t *in_fileName, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) = 0;
   virtual bool Draw( U32 in_fileID, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) = 0;
</code></pre>
<p>Direct3D2DDevice ist public abgeleitet.</p>
<p>Ich benutze Visual C++ Express Edition SP1.</p>
<p>Akta</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357831</guid><dc:creator><![CDATA[Andi001]]></dc:creator><pubDate>Mon, 03 Sep 2007 12:15:53 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene virtuelle Elementfunktionen on Mon, 03 Sep 2007 12:14:48 GMT]]></title><description><![CDATA[<p>Hast du die U32 Version von Draw() fuer deine abgeleitete Klasse schon deklariert (nicht unbedingt definiert)? Afaik guckt der COmpiler erstmal im Scope der Klasse nach, in der du dich grad befindest, und dort sieht er bereits eine Deklaration/Definition von Draw(). Die Deklarationen in der Elternklasse zieht er erst garnicht in Betracht.<br />
Ist nur ne Vermutung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357834</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 03 Sep 2007 12:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene virtuelle Elementfunktionen on Mon, 03 Sep 2007 12:20:41 GMT]]></title><description><![CDATA[<p>Ja habe ich, auch wenn diese Funktion noch nicht fertig ist:</p>
<pre><code class="language-cpp">bool Direct3D2DDevice::Draw( U32 in_fileID, const Point2I &amp;in_dest, const ColorI &amp;in_vertexColor ) {
   TEXTURE *tex = searchTex( in_fileID );
   assert( tex == 0 );

   RECT destRect;
}
</code></pre>
<p>Edit: Habe nun versucht 'virtual' bei beiden Draw() funktionen in der abgeleiteten Klasse wegzulassen. Hat auch nicht geholfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357835</guid><dc:creator><![CDATA[Andi001]]></dc:creator><pubDate>Mon, 03 Sep 2007 12:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene virtuelle Elementfunktionen on Mon, 03 Sep 2007 12:17:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du übergibst die Referenzen falsch.</p>
<p>Eine Referenz übergibt man so: objekt<br />
und nicht so: &amp;objekt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357836</guid><dc:creator><![CDATA[Horst Baldowin III Jr.]]></dc:creator><pubDate>Mon, 03 Sep 2007 12:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene virtuelle Elementfunktionen on Mon, 03 Sep 2007 12:21:53 GMT]]></title><description><![CDATA[<p>Stimmt, das wars <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="🙂"
    /> Hatte wohl noch zuviele Zeiger im Kopf vom Listen-Code *g* Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357843</guid><dc:creator><![CDATA[Andi001]]></dc:creator><pubDate>Mon, 03 Sep 2007 12:21:53 GMT</pubDate></item></channel></rss>