21
Les fonctions virtuelles
et le polymorphisme
Nous avons vu qu’en C++ un pointeur sur un type d’objet pouvait recevoir l’adresse de n’importe quel objet descendant. Toutefois, comme nous l’avons constaté au paragraphe 6.3 du chapitre 19, à cet avantage s’oppose une lacune importante : l’appel d’une méthode pour un objet pointé conduit systématiquement à appeler la méthode correspondant au type du pointeur, et non pas au type effectif de l’objet pointé lui-même.
Cette lacune provient essentiellement de ce que, dans les situations rencontrées jusqu’ici, C++ réalise ce que l’on nomme une ligature statique1, ou encore un typage statique. Le type d’un objet (pointé) y est déterminé au moment de la compilation. Dans ces conditions, le mieux que ...
Get Programmer en langage C++ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.