O
Hacker schrieb:
Ja eben! Ich meinte, da ist dynamic_cast sicherer.
Und jetzt erkläre ich dir mal, warum das falsch ist. Wir sind uns schonmal in 2 Dingen einig:
1. nur dynamic_cast kann cross-casts, weswegen es etwas völlig anderes ist als static_cast
2. sowohl static_cast als auch dynamic_casts können down-casts machen
Wo liegt jetzt der Unterschied in 2? static_cast kann nicht überprüfen, ob der Zeiger wirklich vom Kindtyp ist. Er castet einfach.
"Also ist dynamic _cast doch viel sicherer, oder?"
Nein, denn static_cast funktioniert immer, sobald man weiß, dass die Typen stimmen. Also ist static_cast absolut sicher. Hier kommt wieder zum tragen, dass dynamic_cast etwas völlig anderes ist: er funktioniert in diesem Szenario genau dann, wenn static_cast funktioniert, kann aber auch dann eingesetzt werden, wenn der Zieltyp nicht 100% bekannt ist, man also raten muss. Diese Funktionalität hat also einen völlig anderen Anwendungsbereich als static_cast.
//edit hmm beim reinterpret_cast mit zeigern hattest du recht. Ohne kriegt man es nur unter bestimmten alignment betrachtungen hin...