return (bool) ...
-
In meinem C++-Buch steht folgende Funtion:
bool Invariants() { return ((bool)(itsLen&&itsString)||(!itsLen&&!itsString));
Wofür ist das zu returnende bool gut? Wenn es für die Konvention da ist, ist es relativ sinnlos, nicht wahr?
-
moin,
is (itsLen&&itsString)||(!itsLen&&!itsString)); dann ist bool = 1,
wenn nicht ist bool = 0. das wird gecheckt.
-
Wenn Entweder
(itsLen&&itsString) oder (!itsLen&&!itsString) wahr ist, dann ist der Rückabewert
true, das bool in Klammern ist nur ein Typecast und wandelt den Wert in true oder
false um ( alles != 0 ist true).
-
SirLant schrieb:
Wenn Entweder
(itsLen&&itsString) oder (!itsLen&&!itsString) wahr ist, dann ist der Rückabewert
true, das bool in Klammern ist nur ein Typecast und wandelt den Wert in true oder
false um ( alles != 0 ist true).Habt ihr das "relativ" in meinem Posting nicht beachtet?
Ich hab' nicht um eine Erklärung gebeten was bei (itsLen&&itsString)||(!itsLen&&!itsString)) rauskommt, sondern _warum_ das bool in der return-Anweisung auftaucht.
Aus meiner Sicht her erscheint es relativ sinnlos, das 1/true oder 0/false automatisch zurückgegeben wird, da die Funktion selbst als bool deklariert ist.
Aber ich glaube, wissen tu ich's nicht. Deshalb hab' ich hier nachgefragt.
-
Damit es sofort ersichtlich ist, ob man es nun explizit reinschreibt oder implizit vom Compiler reingeschrieben wird, kommt ja aufs gleiche raus.
Nicht jeder weiß das, daher wird das wohl so sein. Oder aber der Programmierer weiß
das selbst nicht.
-
Das bool ist dort Bloedsinn und gehoert weg.
Ich schreibe ja auch nicht
return (int)2;