next up previous contents
Next: Édition de liens Up: Associer les noms aux Previous: Portée lexicale

Liaison dynamique

La programmation orientée objet, permet la liaison dynamique. Si tout objet a un type statique (déterminé à la compilation par les règles de la portée lexicale), il peut aussi avoir un lien dynamique vers un autre type héritier de ce type statique. Par exemple:

class A{
public:
  virtual void f();
} a, *pa;
class B: public A{
public:
  void f();
  void g();
} b;
//...
pa=&b;
pa->f();  // appel de B::f()
Ici, pa est une adresse d'un objet de type pointeur sur A, le type (statique) de *pa est A, mais le lien associé après l'affectation sera B, et le nom f sera associé à la définition de B::f. Cependant, pour la syntaxe, seule le type statique est pris en compte (par exemple, pa->g() est illégal). La liaison dynamique ne C++ sera étudiée plus tard.




Mon Oct 20 14:02:48 MET 1997