2010-05-12 7 views
2

Je lis dans mon livre de texte sur les fonctions virtuelles en C++ et mon livre ne précise pas ce qu'est exactement la liaison au moment de l'exécution. Cela ne me donne aucune information quant aux raisons pour lesquelles j'aurais besoin d'une liaison d'exécution.Liaison au moment de l'exécution C++

Peut-être que les gens sympas à SO peuvent me fournir des liens ou des informations?

Merci:]

Répondre

3

Que diriez-vous celui-ci? ; D

http://www.google.ca/search?hl=en&source=hp&q=virtual+function+runtime+binding+c%2B%2B&aq=f&aqi=&aql=&oq=&gs_rfai=

Dans tout le sérieux que ... le premier link semble décent.

Voici un aperçu:

La principale raison pour laquelle une fonction virtuelle sera utilisée est d'avoir une fonctionnalité différente dans la classe dérivée. La différence entre une fonction membre non virtuelle et une fonction membre virtuel est que les fonctions membres non virtuelles sont résolues au moment de la compilation.

Et d'un autre site:

Dans les grands programmes complexes, des fonctions virtuelles permettent au programmeur de simplifier le processus de programmation. Si elle est utilisée correctement, la classe de base définira avec succès l'interface de ses classes dérivées. Cependant, le programme laissera l'implémentation de cette interface aux classes dérivées. Par conséquent, le programmeur peut utiliser une interface pour plusieurs implémentations. Cette fonctionnalité permet également la création de bibliothèques de classes, qui établissent des interfaces standard, mais permettent au programmeur d'adapter ces interfaces à toutes les situations de mise en œuvre uniques qui peuvent survenir. L'une des bibliothèques les plus populaires est la bibliothèque Microsoft Foundation Classes (MFC), qui fournit les interfaces nécessaires à la programmation dans l'environnement Windows. Cette bibliothèque libère le programmeur d'avoir à réinventer les interfaces Windows, lui permettant à la place de se concentrer sur l'implémentation spécifique de ces interfaces.

+0

Meh, je recherchais « C virtuel ++ "et a reçu la malbouffe –

+0

Ok, bien, ajoutez un peu plus de mots clés! Virtual C++ pourrait se référer à la pratique de la simulation de l'écriture de C++! ; D En fait, l'ajout de "liaison d'exécution" aide vraiment. –

+0

Googling une question anglaise simple fonctionne souvent mieux que vous ne le pensez. :) – Cogwheel

1

La forme la plus simple de liaison à l'exécution est le polymorphisme. Dans le contexte du polymorphisme C++ est atteint grâce à des fonctions virtuelles. Le but fondamental de ceci est d'appeler des méthodes sur des instances de classes dérivées à travers un pointeur ou une référence à une classe de base.

Les fonctions virtuelles de googling devraient vous donner beaucoup de bons résultats sur comment et pourquoi faire ceci.

0

S'il vous plaît lire les articles Uncle Bobs sur les principes solides de l'objet Orienté Conception: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

De toute évidence, ils ne sont pas le temps courir sur la liaison mais ils décrivent le type de problèmes de conception que vous essayez de résoudre ce qui nécessite à utiliser la liaison à l'exécution.

Je pense que l'article sur le principe fermé ouvert démontre le mieux brobably (encore une fois, l'article est pas le temps courir sur la liaison) lorsque vous devez faire ceci: http://www.objectmentor.com/resources/articles/ocp.pdf

Questions connexes