Umwandeln von Char in Int und andersrum....
-
Man muss einfach sagen: Implizite Konvertierung nach bool bzw. das gänzliche Fehlen des Typs ist einfach ein großer Designfehler von C und damit auch C++.
-
Ethon schrieb:
Man muss einfach sagen: Implizite Konvertierung nach bool bzw. das gänzliche Fehlen des Typs ist einfach ein großer Designfehler von C und damit auch C++.
Warum? C und C++ wurden nicht für Programmierer entworfen, die nicht in der Lage sind, sich ordentliche Lehrbücher zu kaufen oder diese zu verstehen. Wer darauf keinen Bock hat, muss halt Java lernen oder das Programmieren anderen überlassen.
-
Eine ungewollte implizite Konvertierung kann auch einem erfahrenen Programmierer passieren wenn er mal etwas vergisst.
Explizit ist immer besser als implizit wenn es die Aussagekraft des Codes verbessert.
-
Ethon schrieb:
Eine ungewollte implizite Konvertierung kann auch einem erfahrenen Programmierer passieren wenn er mal etwas vergisst.
Explizit ist immer besser als implizit wenn es die Aussagekraft des Codes verbessert.Ich will mal sehen, wie lange du durchhalten würdest, wenn du ständig sämtliche impliziten Konvertierungen explizit ausschreiben müsstest.
-
SeppJ schrieb:
Ethon schrieb:
Eine ungewollte implizite Konvertierung kann auch einem erfahrenen Programmierer passieren wenn er mal etwas vergisst.
Explizit ist immer besser als implizit wenn es die Aussagekraft des Codes verbessert.Ich will mal sehen, wie lange du durchhalten würdest, wenn du ständig sämtliche impliziten Konvertierungen explizit ausschreiben müsstest.
Ich denke, das geht und tut nicht sonderlich weh (wenn man nicht gerade immer static_cast schreiben muss). Aber zu viele Leute kämen gleich mal an mit
#define IF(x) if(bool(x))an und würden keine Zahlentypen außer char und double verwenden.
-
SeppJ schrieb:
Ich will mal sehen, wie lange du durchhalten würdest, wenn du ständig sämtliche impliziten Konvertierungen explizit ausschreiben müsstest.
Du hast schon Recht, allerdings birgt dass halt von Zeit und Zeit auch viele Gefahren.
Mir z.B. War bis vor kurzem nicht klar, dass man durch implizite Konvertierung bei Std::thread ein Undefined Behavior auslösen kann, weil die implizite Konvertierung erst im Kontext des neuen thread passiert und somit der Wert schon gar nicht mehr existieren kann, wenn er endlich an die Funktion übergeben wurde.
-
volki schrieb:
#define IF(x) if(bool(x))Das wäre nicht nötig. Die Konvertierung zu
boolin einemifist eine "contextual implicit conversion", und funktioniert auch mit e.g. expliziten Konvertierungsoperatoren.
-
Vielen Dank für die Hilfe besonders von th69. Ich wollte kein Diskussion eröffnen entschuldigt das meine Aufgabe so für Zünder gesorgt hat. Da ich am Anfang von C+++ bin und das hier nur lerne um meine Prüfung zu bestehen. Sehe ich keinen grossen Mehrwert darin ausser dem Skript und einem Buch noch mehr zu holen. Wenn ich die Klausur hinter mir habe werde ich wahrscheinlich nicht mehr auf c++ stossen. Dafür habe ich ja euch
Werde mal in meinem Buch nachschlagen warum ich nicht selber darauf kam die if-else verzweigung so zu schreiben. Danke euch nochmals und viel Spaß beim Superbowl 
-
Stimmt, das vergesse ich immer wieder, daß es Leute gibt, die C++ lernen müssen ohne es zu wollen.
Sorry.
-
Swordfish schrieb:
Goldeneye88 schrieb:
if (t!=1&&2);Da stimmt mehreres nicht.
Könnte man noch optimieren mit
if (t!=1);oder
if (2);oder am Besten
//if (t!=1&&2);
-
