<?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[static_cast-verhalten]]></title><description><![CDATA[<p>hi</p>
<p>wie verhält sich static_cast bei eigenen klassen?</p>
<pre><code class="language-cpp">class myfloat
{
  float f;
public:
  operator float&amp;();
  operator const float() const; //ist hier das erste const nötig? kann der compiler dann immer noch unterscheiden?
}
float f = static_cast&lt;float&gt;(myfloat); //wir hier ein fehler ausgegeben oder den konvertierungsoperator aufgerufen? ich weiss, der cast wäre nicht nötig, er ist nur ein beispiel
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288946/static_cast-verhalten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 13:23:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288946.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Jun 2011 17:50:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static_cast-verhalten on Sat, 25 Jun 2011 17:50:09 GMT]]></title><description><![CDATA[<p>hi</p>
<p>wie verhält sich static_cast bei eigenen klassen?</p>
<pre><code class="language-cpp">class myfloat
{
  float f;
public:
  operator float&amp;();
  operator const float() const; //ist hier das erste const nötig? kann der compiler dann immer noch unterscheiden?
}
float f = static_cast&lt;float&gt;(myfloat); //wir hier ein fehler ausgegeben oder den konvertierungsoperator aufgerufen? ich weiss, der cast wäre nicht nötig, er ist nur ein beispiel
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084008</guid><dc:creator><![CDATA[lol_of_lolcraft]]></dc:creator><pubDate>Sat, 25 Jun 2011 17:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to static_cast-verhalten on Sat, 25 Jun 2011 18:12:58 GMT]]></title><description><![CDATA[<p>Wieso hast du es nicht einfach mal ausprobiert?</p>
<p>Also</p>
<pre><code class="language-cpp">class Myfloat
{
  float f;
public:
  operator float() const { return 0.0; }
};

int main()
{
  Myfloat myfloat;
  float f = static_cast&lt;float&gt;( myfloat );
  return 0;
}
</code></pre>
<p>funktioniert.</p>
<p>Das erste const bei dir in Zeile 6 ist nicht unbedingt nötig, weil du ja per value returnst und deshalb dein member dadurch eh nicht verändert werden kann. Allerdings kann man auch per value returnte Sachen const machen, macht man aber gewöhnlich nicht beim build-in types (<a href="http://www.gotw.ca/gotw/006.htm" rel="nofollow">http://www.gotw.ca/gotw/006.htm</a>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2084027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2084027</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sat, 25 Jun 2011 18:12:58 GMT</pubDate></item></channel></rss>