El
modificador "friend" puede aplicarse a clases
o funciones para inhibir el sistema de protección.
Las
relaciones de "amistad" entre clases son
parecidas a las amistades entre personas:
La amistad no puede transferirse, si A es amigo de
B, y B es amigo de C, esto no implica que A sea amigo de C. (La
famosa frase: "los amigos de mis amigos son mis amigos",
es falsa en C++, y probablemente también en la vida real).
La amistad no puede heredarse. Si A es amigo de B,
y C es una clase derivada de B, A no es amigo de C. (Los hijos de
mis amigos, no tienen por qué ser amigos míos. De
nuevo, el símil es casi perfecto).
La amistad no es simétrica. Si A es amigo de
B, B no tiene por qué ser amigo de A. (En la vida real, una
situación como esta hará peligrar la amistad de A
con B, pero me temo que en realidad, se trata de una situación
muy frecuente).
|