FUNCIONES AMIGAS
Una función amiga es una función no miembro de una clase que puede tener acceso a las partes privadas de una clase; se debe declarar como amiga de la clase mediante la palabra reservada friend.
Las funciones amigas se declaran situando su prototipo de función en la clase de la que son amiga precediéndola con la palabra reservada friend. Por ejemplo:
class cosa
{
int datos;
public:
friend void cargar (cosa& t, int x);
};
void cargar(cosa& t, int x)
{
t.datos=x;
}
​
​
Como la función cargar se declara amiga de la clase cosa puede acceder al miembro privado datos.
Las razones fundamentales para utilizar funciones amigas es que algunas funciones necesitan acceso privilegiado a más de una clase. Una segunda razón es que las funciones amigas pasan todos sus argumentos a través de la lista de argumentos y cada valor de argumento se somete a la conversión de asignación.
![]() | ![]() |
---|---|
![]() |