Quelle est la différence entre l'héritage public, protected et private en C++ ?
Bonjour, collègues ! J'ai commencé à étudier le C++ et je suis arrivé à l'héritage, mais je me suis embrouillé avec les modificateurs d'accès lors de l'héritage des classes. Les livres expliquent ça de manière compliquée.
Supposons qu'il y ait une classe de base avec différents champs :
```cpp
class Base {
public:
int pub = 1;
protected:
int prot = 2;
private:
int priv = 3;
};
```
Pourquoi en C++ faut-il écrire `class Derived : public Base`, et pas simplement `class Derived : Base` ? Qu'est-ce qui changera si j'écris `class Derived : private Base` ou `class Derived : protected Base` ?
J'ai essayé différentes variantes, mais je ne comprends pas la logique. Par exemple, si j'hérite via `private`, puis-je accéder à `pub` et `prot` à l'intérieur de la classe dérivée ? Et de l'extérieur ? Que se passe-t-il si on hérite d'une structure à partir d'une classe ? Et surtout — à quoi servent ces trois types d'héritage, si on peut simplement utiliser `public` partout ?
Expliquez-moi, s'il vous plaît, en termes simples avec des exemples. Idéalement de manière très simple, pour qu'un débutant comprenne. Merci d'avance !
<<>>
Résumé
No answers yet.
Connectez-vous pour laisser une réponse
Blogs