Polymorphisme en C++

Le mot polymorphisme signifie avoir plusieurs formes. En général, le polymorphisme se produit lorsqu’il existe une hiérarchie de classes et qu’elles sont liées par héritage.

Le polymorphisme en C++ signifie qu’un appel à une fonction membre entraînera l’exécution d’une fonction différente en fonction du type d’objet qui appelle la fonction.
 
 
Prenons l’exemple suivant où une classe de base a été héritée par deux autres classes.
 

#include <iostream>

using namespace std;

class Polygone {
  protected:
    int width, height;
  public:
    void update (int a, int b){ 
		width = a; 
		height = b; 
	}
};

class Rectangle: public Polygone {
  public:
    int aire(){
		return width * height; 
	}
};

class Triangle: public Polygone {
  public:
    int aire(){
		return width * height/2; 
	}
};

int main () {
  Rectangle r;
  Triangle t;
  Polygone * p1 = &r;
  Polygone * p2 = &t;

  p1->update(2,3);
  p2->update(2,3);
  
  cout << r.aire() << endl;
  cout << t.aire() << endl;
  
  return 0;
}

La sortie :
 

 
La fonction main déclare deux pointeurs sur Polygone (nommés p1 et p2). Celles-ci se voient attribuer les adresses respectives de r et t, qui sont des objets de type Rectangle et Triangle. Ces affectations sont valides, car Rectangle et Triangle sont des classes dérivées de Polygone.
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.