Wie kann man diese Warnung verhindern?
-
Steuerelementpfade
Lass' mich raten: Microsoft. Unübertroffen!

Wenn Du sagst, daß
SearchPredeintree_element1*zurückgibt, dann mußt Du das auch tun.
-
vip@r schrieb:
Das der Compiler immer Recht hat, ist klar, aber was hab ich dann falsch gemacht?
Du Sündiger hast den Compiler verärgert! Steinigt ihn!
Spaß beiseite, es gibt Fälle in denen die Funktion nichts zurückgibt und das Programm abstürzt.
-
vip@r schrieb:
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!
Wie verhindere ich die Warnung nun?
Wenn du in deinen Else-If-Zweig (oder Else-Zweig) drin bist bekommst du nie dein Return davor.
Nachtrag:
Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.Falls du nicht weiß, wovon ich rede, teste dein Programm im Debugger durch, oder anhand eine kleinen Beispiel.
-
Zeus schrieb:
Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.
Hihi. Ich nicht was du mein, nutz' mein Debugger an Beispiel!

-
hustbaer schrieb:
Zeus schrieb:
Wenn du nicht was ich mein, nutzt dein Debugger, evtl. an ein Zahlenbeispiel.
Hihi. Ich nicht was du mein, nutz' mein Debugger an Beispiel!

*Urgh* Hustbaer's Dolch durchstößt mein Herz von hinten.
-
Interessant, wer hier so wen von hinten durchstößt. gnihihi
-
314159265358979 schrieb:
Interessant, wer hier so wen von hinten durchstößt. gnihihi
Sei des Vorsicht, sonst verfluche ich dich aus den jenseits heraus!
-
314159265358979 schrieb:
Interessant, wer hier so wen von hinten durchstößt. gnihihi
Du bist ja nur neidisch. gnöhöhö hust
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!Musst du aber, wenn du nicht im Schlimmfall Scheiße bauen willst.
Überprüfe genau deswegen immer den Rückgabewert solcher Funktionenif(auto ptr = searchPed(otherPtr, otherObjet)) doSomethingWithPtr(ptr):
-
vip@r schrieb:
Wie verhindere ich die Warnung nun?
#pragma warning( disable : 4715 )*duck 'n run*
-
Mir entzieht sich gerade was der Code überhaupt tun soll. Bzw. wenn ich es doch richtig verstehe, warum er es so kompliziert tun soll.
// 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<tree_element1*, tree_element1*> searchtree1::SearchNode(object needle) { return SearchNodeImpl(needle, root, 0); } // private helper function std::pair<tree_element1*, tree_element1*> searchtree1::SearchNodeImpl(object needle, tree_element1* node, tree_element1* parent) { if (!node) return std::make_pair(node, parent); // Not found else if (node->val == needle) return std::make_pair(node, parent); // Done else if (node->val > needle) return SearchNodeImpl(needle, node->left, node); // Decend into left subtree else return SearchNodeImpl(needle, node->right, node); // Decend into right subtree }Oder so.