statique/dynamique de la fonte des références/objets

J'ai été jouer avec un tas de casting opérateurs de tout à l'heure, qui, apparemment, je n'ai pas vraiment à l'époque. J'étais à la recherche de plus de mon code maintenant et j'ai vu ceci:

Base(Derived &p_derived) : m_state(static_cast<Base>(p_derived).m_state){}

Je pense que j'ai maintenant une meilleure compréhension de la coulée de pointeurs et références grâce à un très bonne réponse ici sur stackoverflow, mais maintenant il y a les objets concernés. Ce qui se passe exactement lorsque la référence est coulé à un objet? Ou si p_derived a été l'objet lui-même et non pas seulement une référence? Serait-il créer de nouveaux objets et si oui, comment seraient-elles être instanciée?

Je suis aussi surpris que cela pourrait être compilé à tous depuis la Base.h, où ce code est trouvé, Dérivé est seulement vers l'avant a déclaré le sens qu'il ne sait pas qu'elle dérive de la Base. J'ai essayé à un autre endroit pour faire une statique de la fonte à partir d'un Dérivé* de Base*, mais ce serait à juste titre, de ne pas compiler en raison des types incompatibles dans la mesure où cette unité de traduction est en cause.

InformationsquelleAutor user1130005 | 2012-01-17