<?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[virtual --&amp;gt; const???]]></title><description><![CDATA[<p>Hi,</p>
<p>also das hab ich noch in der Schule gelernt, dass man eine Methode als const definieren muss, wenn man eine virtuelle Methode überschreibt... aber wozu das ganze? Wenn ich dann in der überschreibenden Methode auf ein Member der abgeleiteten Klasse schreibend zugreifen will, dann bekomm ich eine Fehlermeldung (klar, ist ja auch als const definiert).</p>
<p>In meinem Fall will ich vom Interface IStream erben und die virtuelle Methode Seek() überschreiben. Wenn ich die überschreibende Methode nicht als const definiere, dann bekomm ich einen Fehler vom Compiler:</p>
<p>Fehler 1 error C2695: 'MyStream::Seek': Die überschreibende virtuelle Funktion unterscheidet sich von 'IStream::Seek' nur durch die Aufrufkonvention</p>
<p>Nur, wenn ich const hinschreibe, dann verschwindet zwar der Fehler, aber dafür kann ich nicht mehr schreiben auf die Mitglieder der Klasse zugreifen.<br />
Weiß da evtl. einer von euch eine Lösung?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154914/virtual-gt-const</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 17:39:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154914.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Jul 2006 21:37:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Mon, 31 Jul 2006 21:37:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also das hab ich noch in der Schule gelernt, dass man eine Methode als const definieren muss, wenn man eine virtuelle Methode überschreibt... aber wozu das ganze? Wenn ich dann in der überschreibenden Methode auf ein Member der abgeleiteten Klasse schreibend zugreifen will, dann bekomm ich eine Fehlermeldung (klar, ist ja auch als const definiert).</p>
<p>In meinem Fall will ich vom Interface IStream erben und die virtuelle Methode Seek() überschreiben. Wenn ich die überschreibende Methode nicht als const definiere, dann bekomm ich einen Fehler vom Compiler:</p>
<p>Fehler 1 error C2695: 'MyStream::Seek': Die überschreibende virtuelle Funktion unterscheidet sich von 'IStream::Seek' nur durch die Aufrufkonvention</p>
<p>Nur, wenn ich const hinschreibe, dann verschwindet zwar der Fehler, aber dafür kann ich nicht mehr schreiben auf die Mitglieder der Klasse zugreifen.<br />
Weiß da evtl. einer von euch eine Lösung?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108074</guid><dc:creator><![CDATA[i2c2k]]></dc:creator><pubDate>Mon, 31 Jul 2006 21:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Mon, 31 Jul 2006 22:02:36 GMT]]></title><description><![CDATA[<p>ich denke du hast da etwas falsch verstanden, wenn die methode mit const deklariert wurde und du sie überschreiben möchtest dann musst sie natürlich auch mit const definieren. hast dann natürlich keinen zugriff auf die member (abgesehen von mutable)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108086</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 31 Jul 2006 22:02:36 GMT</pubDate></item><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Tue, 01 Aug 2006 07:13:27 GMT]]></title><description><![CDATA[<p>Naja gut, und was soll ich jetzt machen? Ich will das Interface implementieren und kann nix damit anfangen, weil der Member const ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108191</guid><dc:creator><![CDATA[i2c2k]]></dc:creator><pubDate>Tue, 01 Aug 2006 07:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Tue, 01 Aug 2006 07:18:59 GMT]]></title><description><![CDATA[<p>So ist übrigens dir Original-Definition:</p>
<p>public:<br />
virtual /* [local] */ HRESULT STDMETHODCALLTYPE Seek(<br />
/* [in] */ LARGE_INTEGER dlibMove,<br />
/* [in] */ DWORD dwOrigin,<br />
/* [out] */ ULARGE_INTEGER *plibNewPosition) = 0;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108196</guid><dc:creator><![CDATA[i2c2k]]></dc:creator><pubDate>Tue, 01 Aug 2006 07:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Tue, 01 Aug 2006 08:45:54 GMT]]></title><description><![CDATA[<p>Die Aufrufkonvention, über die dein Compiler gestolpert ist, hat nichts mit 'const' zu tun (allerdings erzeugt das eine neue Methode, die der Compiler von der alten unterscheiden kann). Dein Problem liegt an dem &quot;STDMETHODCALLTYPE&quot; in der ursprünglichen Definition - das mußt du bei einer Überschreibung auch mit übernehmen.</p>
<p>(PS: Für Insider: Die &quot;Aufrufkonvention&quot; erklärt dem Compiler, wo und wie die Parameter übergeben werden und wer am Ende der Funktion den Programmstack wieder freiräumen will. Wenn sich die Beteiligten darüber nicht einig sind, gibt's Probleme)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1108259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108259</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to virtual --&amp;gt; const??? on Tue, 01 Aug 2006 08:48:35 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, hat mir sehr geholfen!<br />
Jetzt funktioniert's jedenfalls perfekt. Das nächste mal besser auf die originale Definistion schauen <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/1108264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1108264</guid><dc:creator><![CDATA[i2c2k]]></dc:creator><pubDate>Tue, 01 Aug 2006 08:48:35 GMT</pubDate></item></channel></rss>