C wie ursprünglich entworfen war nicht wirklich ein strongly-typed language. Die allgemeine Philosophie war, dass Sie der Programmierer wissen müssen, was Sie tun, und der Compiler ist nur da, um Ihnen dabei zu helfen. Wenn Sie sechs oder sieben Mal in einem einzigen Ausdruck zwischen Float-, Int- und Unsigned-Zeichen konvertieren möchten, dann muss das das sein, was Sie wollten.
C++ Art von abgeholt, nur so dass alle vorhandenen C-Code wäre nicht zu viel von einem Bär zu Port. Sie versuchen jedoch langsam, es mit jeder Überarbeitung stärker zu machen. Heute wird Ihnen fast jeder C++ - Compiler eine Warnung dafür geben, wenn Sie die Warnstufen hochschalten (was ich Ihnen hoch empfehlen kann).
Andernfalls sollten Sie vielleicht in echte stark typisierte Sprachen wie Java und Ada schauen. Der äquivalente Ada-Code würde ohne eine explizite Konvertierung nicht kompilieren.
Sie werden wahrscheinlich eine Warnung erhalten, wenn Sie Ihre Warnstufen erhöhen. –
Ich stimme auch überein, warnende Niveaus anzukurbeln ist eine gute Idee. In jedem Fall, wenn Sie zuweisen müssen, verwenden Sie die static_cast, um klar zu sein –
seand
In GCC, erhalten Sie keine Warnung über mögliche Probleme bei der Typkonvertierung, bis Sie die '-Wconversion'-Flag verwenden (' -Wall' doesn ' t warne dies). In VC++ warnt '/ W4' vor einem möglichen Datenverlust bei dieser Konvertierung. – birryree