Chapitre 19 : héritage (P1)

Soit M une classe alors on peut créer une classe F par héritage qui sera considéré comme une "spécialisation" de M et pourra bénéficier des membres publiques de M tout en ajoutant d'autres membres.

EXEMPLE SYNTAXE
class M{...};

class F: public M{
  ...
};
M F
classe mère classe fille
classe de base classe dérivée
classe héritée classe héritane

Si F hérite de M, alors se met en place une conversion implicite de F* vers M*.

EXEMPLE
class M{
  int a;
  public:
    void f(){...}
    int c;
};

class F : public M{
  int b;
  public:
    void g(){
      this->c; //ok
      this->a; // erreur : a est un membre privé de M.
      this->f(); //ok
      this->b; //ok
    }
};

int main(){
  F obj;
  obj.g(); //ok
  obj.f(); //ok
  //obj.a; //erreur
  //obj.b; //erreur
  obj.c; //ok
}

Finalement si F hérite de M excepté les constructeurs de M, les autres membres de M sont accessible à partir d'un objet de type F.

SCHEMA