<?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[unterschied in der signatur - aufruf unklar]]></title><description><![CDATA[<p>habe zwei gleichnamige methoden:</p>
<p>String&amp; myclass:lala()<br />
String myclass:lala() const //die soll die erste aufrufen</p>
<p>Wie rufe ich in der<br />
String myclass:lala() const</p>
<p>nun die andere gleichmaige auf?</p>
<p>&quot;return ((myclass*)this)-&gt;lala();&quot;<br />
hat nicht geklappt. Ergab ne Rekursion</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304353/unterschied-in-der-signatur-aufruf-unklar</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 19:59:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304353.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jun 2012 12:51:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 12:51:57 GMT]]></title><description><![CDATA[<p>habe zwei gleichnamige methoden:</p>
<p>String&amp; myclass:lala()<br />
String myclass:lala() const //die soll die erste aufrufen</p>
<p>Wie rufe ich in der<br />
String myclass:lala() const</p>
<p>nun die andere gleichmaige auf?</p>
<p>&quot;return ((myclass*)this)-&gt;lala();&quot;<br />
hat nicht geklappt. Ergab ne Rekursion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219209</guid><dc:creator><![CDATA[kajos]]></dc:creator><pubDate>Mon, 04 Jun 2012 12:51:57 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 13:14:55 GMT]]></title><description><![CDATA[<p>Mit einem const_cast:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;

using namespace std;

struct foo
{
  void bar() {cout &lt;&lt; &quot;Non-const\n&quot;; }
  void bar() const {cout &lt;&lt; &quot;Const\n&quot;; const_cast&lt;foo*&gt;(this)-&gt;bar(); }
};

int main()
{
  foo a;
  a.bar();
  const foo b;
  b.bar();
}
</code></pre>
<p>Bist du sicher, dass du im const-Fall eine Kopie zurück geben möchtest und keine <code>const string&amp;</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219227</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Jun 2012 13:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 13:17:46 GMT]]></title><description><![CDATA[<p>Sollte ein C-Style-Cast auf myClass* nicht einen const_cast beinhalten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219229</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 04 Jun 2012 13:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 13:36:36 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Sollte ein C-Style-Cast auf myClass* nicht einen const_cast beinhalten?</p>
</blockquote>
<p>Eigentlich schon, aber wer weiß schon immer alle Regeln für die C-Style-Casts? Bei meinem Beispiel tut es auch ein C-Cast. Der Threadersteller hat vielleicht was falsch gemacht. Um ihm zu helfen müsste er aber mal den konkreten Code zeigen, der die Rekursion verursacht. Der const_cast ist jedoch so unendlich klarer, den sollte er auf jeden Fall benutzen. Und falls noch ein Fehler im Code ist, wird ihn der Compiler beim const_cast melden, im Gegensatz zum C-Cast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219241</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Jun 2012 13:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 14:09:25 GMT]]></title><description><![CDATA[<p>Das sieht mir sehr böse aus. Eine non-const Methode aus einer const-Methode aufzurufen halten ich zumindest für unpraktisch. Solltest du einmal die non-const Methode abändern, sodass sie *this verändert, erhältst du undefiniertes Verhalten. Falls du den Cast nur brauchst, um eine über die andere implementieren zu können, empfehle ich, es genau umgekehrt zu machen. Dadurch würde dich der Compiler daran hindern, sowas zu übersehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219260</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 04 Jun 2012 14:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 14:51:21 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Das sieht mir sehr böse aus. Eine non-const Methode aus einer const-Methode aufzurufen halten ich zumindest für unpraktisch. Solltest du einmal die non-const Methode abändern, sodass sie *this verändert, erhältst du undefiniertes Verhalten. Falls du den Cast nur brauchst, um eine über die andere implementieren zu können, empfehle ich, es genau umgekehrt zu machen. Dadurch würde dich der Compiler daran hindern, sowas zu übersehen.</p>
</blockquote>
<p>Wenn du über die non-const die const-Methode aufrufst, dann kannst du die non-const-Methode auch gleich weglassen. Denn ein non-const-Objekt darf auch const-Methoden aufrufen. Und speziell in diesem Beispiel wäre dies sehr, sehr böse, da man eine non-const-Referenz auf ein lokales Objekt zurück geben würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219282</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Jun 2012 14:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 15:53:16 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Wenn du über die non-const die const-Methode aufrufst, dann kannst du die non-const-Methode auch gleich weglassen.</p>
</blockquote>
<p>Ich bin davon ausgegangen, dass die const-Version irgendwas geconstetes zurückgibt, das die non-const Version const_cast-en kann. Ansonsten kann man sich die non-const Version sowieso sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219310</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 04 Jun 2012 15:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to unterschied in der signatur - aufruf unklar on Mon, 04 Jun 2012 16:28:27 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Das sieht mir sehr böse aus. Eine non-const Methode aus einer const-Methode aufzurufen halten ich zumindest für unpraktisch. Solltest du einmal die non-const Methode abändern, sodass sie *this verändert, erhältst du undefiniertes Verhalten. Falls du den Cast nur brauchst, um eine über die andere implementieren zu können, empfehle ich, es genau umgekehrt zu machen. Dadurch würde dich der Compiler daran hindern, sowas zu übersehen.</p>
</blockquote>
<p>Seh ich genauso.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219316</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 04 Jun 2012 16:28:27 GMT</pubDate></item></channel></rss>