... vus dans "Que signifient public, private et protected ?"

L'entrée de FAQ qui traite à la volée des divers types d'héritage en C++ me gêne assez.
Elle se concentre sur l'approche classique que l'on trouve dans tous les cours: elle parle de syntaxe.
Or ce qui est vraiment intéressant quand on doit choisir son héritage, c'est ce que l'on veut en faire : la sémantique.

Je pense qu'il vaudrait mieux une entrée dédiée qui parle d'abord des deux grands intérêts de l'héritage:
1- importer du code existant <=> réutilisation <=> est implémenté en termes de <=> dispose d'un <=> ...
2- la substituabilité <=> être utilisable en place de <=> est-un <=> LSP <=> etc

Une fois cette première intro passée, on pourrait détailler comment ces deux formes d'héritage sont réalisées en C++.

La seconde, seul l'héritage public la permet. (enchainer sur la mise en garde: un héritage public permet la subtituabilité, et donc si on n'en veut pas, on ne prend pas un héritage public ... parce que rupture des invariants, "un carré n'est pas un rectangle", "une liste triée n'est pas une liste", ...)

La première est permise par tous les héritages, mais seul l'héritage privé ne permet QUE l'importation. (Alternatives: la délégation/composition/...)