Adelle
Básicamente, las funciones de Friend se pueden introducir en C ++ para manejar algunas tareas específicas que están relacionadas con objetos de clase.
En C ++, sabemos que no se puede acceder a los miembros privados desde la clase externa.
Esa es una función no miembro que no puede tener acceso a los datos privados de una clase.
Sin embargo, podría haber una situación en la que nos gustaría que dos clases compartieran una función en particular.
Por ejemplo, considere un caso en el que se han definido dos clases, gerente y científico.
Nos gustaría utilizar una función sobre la renta_impuesto () para operar en los objetos de estas dos clases.
En tal situación, C ++ permite que la función común sea compatible con ambas clases. Tal función no necesita ser miembro de ninguna de estas clases.
Para hacer que la función externa sea amigable para una clase, simplemente tenemos que declarar esta función como un amigo de una clase como se muestra a continuación:
Clase ABC
{
………
..
Público:
…… ..
…… ..
Amigo void xyz (void) ; // declaración
};
Esta declaración de función debe estar precedida por la palabra clave friend.
La función se define en otra parte del programa como una función normal de C ++.
La definición de la función no usa la palabra clave amigo ni el operador de alcance:
Las funciones que se declaran con la palabra clave amigo se conocen como función amigo.
Una función se puede declarar como amiga en cualquier número de clases.
Las funciones de un amigo, aunque ninguna función de miembro tiene derechos de acceso total a los miembros privados de la clase.
Brooklyn
-> Función Friend normalmente utilizada para acceder a miembros privados de la clase .-> Con la ayuda de la función Friend podemos acceder a diferentes objetos de clase .-> En la sobrecarga del operador, con la ayuda de la función friend podemos usar el argumento de tipo de datos primitivo y el usuario define el argumento en una función .-> No es una función miembro de la clase .-> Cuando queremos sumas, restas ... En diferentes clases podemos usar la función amiga fácilmente.
Dorothy
Las funciones de amigo son necesarias para hacer puentes entre clases y para dar permiso a una función normal de acceso a datos privados de una clase.
Annabel
Jigar,
(a) Digamos, En la clase 'A' estás declarando que la función 'Fb' es una función amiga. ¿Necesita entonces definir la función 'Fb' en la misma clase 'A' / mismo archivo?
(b) Si la respuesta a (a) es sí, entonces ¿en qué se diferencian la función de un miembro y las funciones de amigo? La función 'Fb' también podría haber sido declarada como función miembro. ¿Qué diferencia hay para definirlo como función de amigo frente a función de miembro?
(c) ¿Hay alguna desventaja de las funciones de amigos?
Gracias,
ak
Laron
Las funciones de amigo son funciones que no son miembros, precedidas por una palabra clave "amigo". Se utiliza para acceder a los miembros de una clase que no es una función miembro.
Kaylah
La función de amigo es necesaria para acceder a las variables privadas, obviamente.
Para los datos privados, las funciones que no son miembros o las clases externas no pueden acceder a ellos.