Avatar ·

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é