web-dev-qa-db-fra.com

C ++ Héritage ami?

Une sous-classe hérite-t-elle, les associations d'amis de la classe principale (les deux classes de la classe principale "et d'autres classes ont été associées à la classe principale)?

Ou de la mettre différemment, comment l'héritage s'applique-t-il au mot-clé ami?

Pour développer: et sinon, y a-t-il un moyen d'hériter de l'amitié?

J'ai suivi la suggestion de Jon à publier le problème de conception:
[.____] questions de conception de classe C++

35
SSight3

L'amitié n'est pas héritée en C++.

La norme indique (ISO/CEI 14882: 2003, section 11.4.8):

L'amitié n'est ni héritée ni transitive.

43
Jon

aMI ne s'applique qu'à la classe que vous le faites explicitement ami et aucune autre classe.

http://www.parasht.com/c++-faq-lite/friends.html#faq-14.4

9
balki

La réponse est très simple: Non, les sous-classes n'hérient pas d'associations d'amis. Un ami ne peut accéder que les membres privés de la classe L'association est déclarée, non pas celles des parents et/ou des enfants de cette classe. Bien que vous puissiez accéder au membre protégé d'une superclasse, mais je ne suis pas sûr de cela.

2
Aardvark Soup