<?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[Verstehe den Fehler nicht]]></title><description><![CDATA[<p>Also ich habe länger gesucht und bei den Referenzen nichts gefunden, was mir eine<br />
Dezimalzahl in einen Bruch umwandelt, also wollte ich eine Klasse definieren (Bruch<br />
halt) wo ich eine Methode habe, die mir Dezimalzahlen in Brüche umwandelt. Habe ich<br />
dann alles schön gemacht und funktioniert auch, aber der Compiler beschwert sich<br />
mit folgendem Fehler:</p>
<p>Warning W8026 test.cpp 25: Functions taking class-by-value argument(s) are not<br />
expanded inline in function bruch::umwandeln(string,double)</p>
<p>Hier ist mal mein Quellcode:</p>
<p>// test.cpp</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;cmath&gt;<br />
using namespace std;</p>
<p>class bruch<br />
{<br />
public:</p>
<p>int nenner;<br />
int zaehler;</p>
<p>bruch()<br />
{<br />
nenner = 0;<br />
zaehler = 0;<br />
}</p>
<p>void umwandeln(string s, double d)<br />
{<br />
int stelle;<br />
s.find('.', stelle);</p>
<p>nenner = pow(10, s.size() - stelle - 1);<br />
zaehler = nenner * d;<br />
}<br />
};</p>
<p>int main()<br />
{<br />
string de;<br />
double za;<br />
bruch br;</p>
<p>cin &gt;&gt; de;<br />
cin &gt;&gt; za;</p>
<p>br.umwandeln(de, za);</p>
<p>cout &lt;&lt; &quot;Zaehler: &quot; &lt;&lt; br.zaehler &lt;&lt; &quot; Nenner: &quot; &lt;&lt; br.nenner;</p>
<p>return 0;<br />
}</p>
<p>Nicht wunder, dass gehört eigentlich in ein größeres Programm und das habe ich<br />
halt nur eben zum testen abgeschrieben :).<br />
Habe auch schon gegoogelt und bin irgendwie fündig geworden, aber das hat mir<br />
nicht wirklich weiter geholfen. Anscheinend mag der Compiler es nicht den string<br />
zu kopieren und deshalb soll er angeblich meckern, aber ob ich das so richtig<br />
verstanden habe -&gt; keine Ahnung.</p>
<p>Kann mir das jemand genauer erklären und wie ich das beseitigen kann?</p>
<p>al3pou</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300526/verstehe-den-fehler-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 18:28:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300526.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Mar 2012 22:39:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Sun, 04 Mar 2012 22:39:09 GMT]]></title><description><![CDATA[<p>Also ich habe länger gesucht und bei den Referenzen nichts gefunden, was mir eine<br />
Dezimalzahl in einen Bruch umwandelt, also wollte ich eine Klasse definieren (Bruch<br />
halt) wo ich eine Methode habe, die mir Dezimalzahlen in Brüche umwandelt. Habe ich<br />
dann alles schön gemacht und funktioniert auch, aber der Compiler beschwert sich<br />
mit folgendem Fehler:</p>
<p>Warning W8026 test.cpp 25: Functions taking class-by-value argument(s) are not<br />
expanded inline in function bruch::umwandeln(string,double)</p>
<p>Hier ist mal mein Quellcode:</p>
<p>// test.cpp</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;cmath&gt;<br />
using namespace std;</p>
<p>class bruch<br />
{<br />
public:</p>
<p>int nenner;<br />
int zaehler;</p>
<p>bruch()<br />
{<br />
nenner = 0;<br />
zaehler = 0;<br />
}</p>
<p>void umwandeln(string s, double d)<br />
{<br />
int stelle;<br />
s.find('.', stelle);</p>
<p>nenner = pow(10, s.size() - stelle - 1);<br />
zaehler = nenner * d;<br />
}<br />
};</p>
<p>int main()<br />
{<br />
string de;<br />
double za;<br />
bruch br;</p>
<p>cin &gt;&gt; de;<br />
cin &gt;&gt; za;</p>
<p>br.umwandeln(de, za);</p>
<p>cout &lt;&lt; &quot;Zaehler: &quot; &lt;&lt; br.zaehler &lt;&lt; &quot; Nenner: &quot; &lt;&lt; br.nenner;</p>
<p>return 0;<br />
}</p>
<p>Nicht wunder, dass gehört eigentlich in ein größeres Programm und das habe ich<br />
halt nur eben zum testen abgeschrieben :).<br />
Habe auch schon gegoogelt und bin irgendwie fündig geworden, aber das hat mir<br />
nicht wirklich weiter geholfen. Anscheinend mag der Compiler es nicht den string<br />
zu kopieren und deshalb soll er angeblich meckern, aber ob ich das so richtig<br />
verstanden habe -&gt; keine Ahnung.</p>
<p>Kann mir das jemand genauer erklären und wie ich das beseitigen kann?</p>
<p>al3pou</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188521</guid><dc:creator><![CDATA[al3pou]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:39:09 GMT</pubDate></item><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Sun, 04 Mar 2012 22:47:54 GMT]]></title><description><![CDATA[<p>Das ist kein Fehler, sondern bloss eine Warnung.</p>
<p>Da du den string byValue und nicht byReference uebergibst entscheidet sich der Compiler, die Funktion nicht zu inlinen.<br />
Falls dir passByValue, passByReference und Function Inlining nichts sagt, dann kannst du die Warnung fuer den Moment ignorieren.</p>
<p>Mit</p>
<pre><code class="language-cpp">void umwandeln(const string&amp; s, double d) 
{
//...
}
</code></pre>
<p>sollte die Warnung wahrscheinlich verschwinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188532</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verstehe den Fehler nicht on Sun, 04 Mar 2012 22:51:08 GMT]]></title><description><![CDATA[<p>Alle klar. Danke <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2188533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188533</guid><dc:creator><![CDATA[al3pou]]></dc:creator><pubDate>Sun, 04 Mar 2012 22:51:08 GMT</pubDate></item></channel></rss>