c++: dynamic_cast vs reinterpret_cast
Theodore Lytras
thlytras at gmail.com
Mon Sep 10 15:34:51 EEST 2012
Στις Δευ 10 Σεπτ 2012, ο/η John Tsiombikas έγραψε:
[snip, snip]
> To reinterpret_cast den
> exei logo yparksis, just (cast) ...
[snip, snip]
> > Αυτό που θέλω είναι να μετατρέψω δείκτες Α* σε δείκτες Β*. Φαντάζομαι
> > αυτό μπορεί να γίνει τόσο με dynamic_cast όσο και με reinterpret_cast.
> > Με ποιό από τα δύο λοιπόν θα πρέπει να το κάνω, και γιατί?
>
> B *bptr = (B*)aptr;
>
> Seriously... ksexna ta whatever_casts<kourasi>(foo)... den yparxei logos
> na kaneis ton kodika sou toso asximo.
OK, άρα εσύ μου λες να χρησιμοποιήσω C-style casts, τα οποία σε διάφορα C++
tutorials τα αποδοκιμάζουν. Αν είναι πάντως θέμα στυλ, εμένα μ'αρέσουν τα C++
casts, είναι λιγότερο ambiguous και πιο ξεκάθαρα στο μάτι νομίζω. Διάβασα
πάντως οτι το reinterpret_cast (και νομίζω αυτό μου λες και συ πιο πάνω) οτι
είναι ίδιο με το C-style cast, άρα μεταξύ dynamic_ και reinterpret_ μου
απαντάς στην ουσία οτι στο σενάριο που προανέφερα μπορώ άνετα να χρησιμοποιήσω
το reinterpret_. Thanks!!
> Den einai toso aparaitito na teriazei 1-1 i eikona ton antikeimenon sou
> sto myalo sou me ton kodika. Einai protimotero na aplopoiiseis ton
> kodika synithos.
Δίκιο έχεις, αλλά στην προκειμένη περίπτωση η πολλαπλή κληρονομικότητα με
σώνει από αρκετό επαναλαμβανόμενο κώδικα. Σκέφτηκα την περίπτωση του
composition, αλλά έκρινα οτι δε με βολεύει. Άρα η πολλαπλή φαίνεται σαν η
απλούστερη των λύσεων.
--
"Beauty is transitory."
"Beauty survives."
-- Mr. Spock & Capt. Kirk, "That Which Survives", stardate unknown
by Theodore Lytras <thlytras at gmail.com>
More information about the Linux-greek-users
mailing list