2010-01-31 2 views
-2

Respecté Sir! S'il vous plaît expliquer comment C++ implémente cette liaison dynamique une représentation graphique serait plus utile dans la compréhension de la perspective.
ou de suggérer une page Web qui contient des représentations graphiques et des détails complets sur ce sujet.comment C++ implémente la liaison dynamique en interne?

+0

@Zia ur Rahman: Consultez http://www.parashift.com/c++-faq-lite/virtual-functions.html. Lisez la page complète et je parie que vous n'aurez besoin d'aucune représentation graphique après l'avoir lue. –

+2

La liaison dynamique est une autre expression du polymorphisme. Vous avez déjà posé des questions à ce sujet: http://stackoverflow.com/questions/2171081/how-c-implements-the-polymorphism-internally – avakar

Répondre

1

laissez-moi coller some text pour vous, tout vote est apprécié,: O

[20.2] Comment C++ obtenir encore de liaison dynamique aussi typage statique? Lorsque vous avez un pointeur sur un objet, l'objet peut en fait appartenir à une classe dérivée de la classe du pointeur (par exemple, un véhicule * pointant vers un objet Car, c'est ce que l'on appelle "polymorphisme"). "). Il existe donc deux types: le type (statique) du pointeur (Vehicle, dans ce cas) et le type (dynamique) de l'objet pointé (Car, dans ce cas). La typage statique signifie que la légalité d'une invocation de fonction membre est vérifiée le plus tôt possible: par le compilateur au moment de la compilation. Le compilateur utilise le type statique du pointeur pour déterminer si l'invocation de la fonction membre est légale. Si le type du pointeur peut gérer la fonction membre, l'objet pointé peut certainement le gérer également. Par exemple, si le véhicule a une certaine fonction de membre, la voiture a également cette fonction de membre puisque la voiture est un genre de véhicule. La liaison dynamique signifie que l'adresse du code dans une invocation de fonction membre est déterminée au dernier moment possible: en fonction du type dynamique de l'objet au moment de l'exécution. Il est appelé "liaison dynamique" car la liaison au code qui est réellement appelé est effectuée dynamiquement (au moment de l'exécution). La liaison dynamique est le résultat de fonctions virtuelles.

+0

La FAQ C++ Lite est vraiment une bonne source d'informations et de réponses sur certains détails C++ – Vargas