Moral von static_cast
lima-city → Forum → Programmiersprachen → C/C++ und D
anweisung
benutzen
code
compiler
diplomarbeit
einheitlichkeit
fehler
frage
halten
komplexere aufgaben
machen
operation
operator
primitive typen
sinn
sitz
unterscheiden
unterscheidung
versuchen
verwenden
-
Hallo,
ich sitze momentan an meiner Diplomarbeit und versuche, den Cod leserlich usw. zu halten.
In neuerer Literatur wird aus verschiedenen Gr?nden geraten, beim Casten von Pointern das static_cast Konstrukt statt des von C stammenden Casten-nur-mit-Klammern zu benutzen.
Frage 1: Gilt dies auch f?r primitive Datentypen? Ist f?r float f und int i die Anweisung
i=static_cast<int>(f);
besser als
i=(int)f; bzw. i=int(f);
?
Frage 2: Findet Ihr, dass es die Leserlichkeit erh?ht, wenn man im Fall von Frage 1 static_cast statt nur die Klammerschreibweise benutzt? Ich hatte mal irgendwo gelesen, dass man einfacher alle Cast-Operationen in seinem Quellcode f?nde, wenn diese immer mit static_cast (oder dynamic_cast usw.) gekennzeichnet sind.
Bj?rn
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich denke du solltest die C++-Casts verwenden (sofern du ?berhaupt in C++ schreibst).
Die C++-Casts sind zwar l?nger zu schreiben, haben aber einige Vorteile.
Man sollte m?glichst wenig casten, deshalb ist es gar nicht schlecht, wenn das casten etwas komplizierter ist als in C. Man castet dann "bewusster". Zudem ist man sich dann auch bewusst, was man eigentlich manipuliert, wenn man zwischen den verschiedenen casting operatoren unterscheiden muss.
Durch die Unterscheidung der Cast-Operatoren (reinterpret_cast, dynamic_cast, const_cast) sagt uns der Compiler auch eher, wenn wir mal falsches oder unm?gliches zu casten versuchen. So k?nnen Fehler vermieden werden.
Deshalb sollte man immer die C++-Casts benutzen, nur schon wegen der Einheitlichkeit des Codes. Es macht keinen Sinn f?r primitive Typen C-Casts zu verwenden und f?r komplexere Aufgaben auf die C++-Variante umzusteigen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage