Je comprends la différence entre la liaison statique et dynamique en ce sens que les appels de méthodes sont déterminés au moment de la compilation pour la liaison statique - tandis que les appels de méthode sont déterminés au moment de l'exécution pour la liaison dynamique. Une chose que je ne comprends pas est pourquoi vous devez passer par référence ou pointeur pour la liaison dynamique. J'ai essayé de regarder en ligne mais je suis toujours confus. Est-ce parce que quand vous passez par la valeur, vous passez une copie qui signifie qu'elle doit être initialisée ce qui signifie qu'elle est découpée?Comportement de liaison statique et dynamique C++
Par exemple, Pet
est une classe de base et Dog
est une classe dérivée.
maintenant ...
void print(Pet p) {} // Calls print from the pet class
void print(Pet &p) {} // Calls print from the type of pet object being passed. For example, Dog::print() rather than Pet::print()
Si quelqu'un pouvait me l'expliquer mieux ce sera vraiment me rendre heureux
Merci
Ces choses sont orthogonales. Il n'y a aucune exigence forte pour avoir des paramètres de référence pour _dynamic binding_. Peut-être mélangez-vous quelque chose avec le polymorphisme dynamique. –