<?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[Wie kann man diese Warnung verhindern?]]></title><description><![CDATA[<p>Mein Compiler gibt mir diese Warnung aus:</p>
<pre><code>Warnung	1	warning C4715: &quot;searchtree1::SearchPred&quot;: Nicht alle Steuerelementpfade geben einen Wert zurück.
</code></pre>
<p>Das ist die Methode die mir die Warnung bringt:</p>
<pre><code class="language-cpp">tree_element1* searchtree1::SearchPred(tree_element1* pred, object o)
{
	//Wert im Baum suchen
	if(root-&gt;val == o)
	{
		return pred;	//in aufrufender Methode steht nun in Variable &quot;root&quot; der Zeiger auf das zu löschende Element
	}
	else if(o &lt;= root-&gt;val)
	{
		pred = root;
		root = root-&gt;left;

		SearchPred(pred, o);
	}
	else
	{
		root = root-&gt;right;
	}
}
</code></pre>
<p>Mir ist klar, dass die Warnung dadurch kommt, weil zwischen den zwei letzten beiden schließenden Klammern kein return mehr steht. Ich kann aber da kein return 0; oder sowas zurückgeben weil mir sonst mein eigentlich wichtiger Wert nicht mehr zurückkommt, der in Zeile 6 zurückgegeben werden soll!</p>
<p>Wie verhindere ich die Warnung nun?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303467/wie-kann-man-diese-warnung-verhindern</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 11:11:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303467.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 May 2012 20:04:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:05:01 GMT]]></title><description><![CDATA[<p>Mein Compiler gibt mir diese Warnung aus:</p>
<pre><code>Warnung	1	warning C4715: &quot;searchtree1::SearchPred&quot;: Nicht alle Steuerelementpfade geben einen Wert zurück.
</code></pre>
<p>Das ist die Methode die mir die Warnung bringt:</p>
<pre><code class="language-cpp">tree_element1* searchtree1::SearchPred(tree_element1* pred, object o)
{
	//Wert im Baum suchen
	if(root-&gt;val == o)
	{
		return pred;	//in aufrufender Methode steht nun in Variable &quot;root&quot; der Zeiger auf das zu löschende Element
	}
	else if(o &lt;= root-&gt;val)
	{
		pred = root;
		root = root-&gt;left;

		SearchPred(pred, o);
	}
	else
	{
		root = root-&gt;right;
	}
}
</code></pre>
<p>Mir ist klar, dass die Warnung dadurch kommt, weil zwischen den zwei letzten beiden schließenden Klammern kein return mehr steht. Ich kann aber da kein return 0; oder sowas zurückgeben weil mir sonst mein eigentlich wichtiger Wert nicht mehr zurückkommt, der in Zeile 6 zurückgegeben werden soll!</p>
<p>Wie verhindere ich die Warnung nun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211509</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Mon, 14 May 2012 20:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:10:52 GMT]]></title><description><![CDATA[<p>Das der Compiler immer Recht hat, ist klar, aber was hab ich dann falsch gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211519</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Mon, 14 May 2012 20:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:12:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Steuerelementpfade</p>
</blockquote>
<p>Lass' mich raten: Microsoft. Unübertroffen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Wenn Du sagst, daß <code>SearchPred</code> ein <code>tree_element1*</code> zurückgibt, dann mußt Du das auch tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211520</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 14 May 2012 20:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:12:43 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Das der Compiler immer Recht hat, ist klar, aber was hab ich dann falsch gemacht?</p>
</blockquote>
<p>Du Sündiger hast den Compiler verärgert! Steinigt ihn!</p>
<p>Spaß beiseite, es gibt Fälle in denen die Funktion nichts zurückgibt und das Programm abstürzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211521</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 20:12:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:38:48 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Mir ist klar, dass die Warnung dadurch kommt, weil zwischen den zwei letzten beiden schließenden Klammern kein return mehr steht. Ich kann aber da kein return 0; oder sowas zurückgeben weil mir sonst mein eigentlich wichtiger Wert nicht mehr zurückkommt, der in Zeile 6 zurückgegeben werden soll!</p>
<p>Wie verhindere ich die Warnung nun?</p>
</blockquote>
<p>Wenn du in deinen Else-If-Zweig (oder Else-Zweig) drin bist bekommst du nie dein Return davor.</p>
<p>Nachtrag:</p>
<p><s>Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.</s></p>
<p>Falls du nicht weiß, wovon ich rede, teste dein Programm im Debugger durch, oder anhand eine kleinen Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211522</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 14 May 2012 20:38:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:34:37 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.</p>
</blockquote>
<p>Hihi. Ich nicht was du mein, nutz' mein Debugger an Beispiel! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211544</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 May 2012 20:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:37:22 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Zeus schrieb:</p>
<blockquote>
<p>Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.</p>
</blockquote>
<p>Hihi. Ich nicht was du mein, nutz' mein Debugger an Beispiel! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>*Urgh* Hustbaer's Dolch durchstößt mein Herz von hinten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211548</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 14 May 2012 20:37:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:38:14 GMT]]></title><description><![CDATA[<p>Interessant, wer hier so wen von hinten durchstößt. gnihihi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211549</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 14 May 2012 20:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:42:40 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Interessant, wer hier so wen von hinten durchstößt. gnihihi</p>
</blockquote>
<p>Sei des Vorsicht, sonst verfluche ich dich aus den jenseits heraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211552</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 14 May 2012 20:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 20:43:39 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Interessant, wer hier so wen von hinten durchstößt. gnihihi</p>
</blockquote>
<p>Du bist ja nur neidisch. gnöhöhö hust</p>
<pre><code class="language-cpp">Mir ist klar, dass die Warnung dadurch kommt, weil zwischen den zwei letzten beiden schließenden Klammern kein return mehr steht. Ich kann aber da kein return 0; oder sowas zurückgeben weil mir sonst mein eigentlich wichtiger Wert nicht mehr zurückkommt, der in Zeile 6 zurückgegeben werden soll!
</code></pre>
<p>Musst du aber, wenn du nicht im Schlimmfall Scheiße bauen willst.<br />
Überprüfe genau deswegen immer den Rückgabewert solcher Funktionen</p>
<pre><code class="language-cpp">if(auto ptr = searchPed(otherPtr, otherObjet))
    doSomethingWithPtr(ptr):
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2211557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211557</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 14 May 2012 20:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 22:53:07 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Wie verhindere ich die Warnung nun?</p>
</blockquote>
<pre><code class="language-cpp">#pragma warning( disable : 4715 )
</code></pre>
<p>*duck 'n run*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211620</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 14 May 2012 22:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann man diese Warnung verhindern? on Mon, 14 May 2012 23:17:44 GMT]]></title><description><![CDATA[<p>Mir entzieht sich gerade was der Code überhaupt tun soll. Bzw. wenn ich es doch richtig verstehe, warum er es so kompliziert tun soll.</p>
<pre><code class="language-cpp">// Returns
//    (root, 0)            if the value is found in the root node
//    (node, parent_node)  if the value is found in any other node
//    (0, parent_node)     if the value isn't found at all
std::pair&lt;tree_element1*, tree_element1*&gt; searchtree1::SearchNode(object needle)
{
    return SearchNodeImpl(needle, root, 0);
}

// private helper function
std::pair&lt;tree_element1*, tree_element1*&gt; searchtree1::SearchNodeImpl(object needle, tree_element1* node, tree_element1* parent)
{
    if (!node)
        return std::make_pair(node, parent); // Not found
    else if (node-&gt;val == needle) 
        return std::make_pair(node, parent); // Done
    else if (node-&gt;val &gt; needle)
        return SearchNodeImpl(needle, node-&gt;left, node); // Decend into left subtree
    else
        return SearchNodeImpl(needle, node-&gt;right, node); // Decend into right subtree
}
</code></pre>
<p>Oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211629</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 May 2012 23:17:44 GMT</pubDate></item></channel></rss>