Una función fuera de una clase puede
definirse como función amiga por la clase que le da libre acceso a los miembros
privados de la clase. Hay casos en que esto ayuda a hacer más legible un
programa, y permite el acceso controlado a los datos.
Una función aislada
puede ser declarada como amiga, así como miembro de otras clases, e incluso se
le puede dar el estatus de amiga a clases enteras, si es necesario.
No pueden
ser funciones amigas los constructores ni los destructores.