C ++

Función amigo de C ++

Función amigo de C ++
Una función es un bloque de código que realiza una determinada tarea y proporciona la salida. Se utiliza principalmente para eliminar código repetitivo. En este tutorial, veremos la función de amigo en C ++ y explicaremos su concepto con ejemplos de trabajo.

¿Qué es la función de amigo??

La función de amigo es una función no miembro que puede acceder a los miembros privados y protegidos de una clase. "Amigo" es una palabra clave que se utiliza para indicar que una función es amiga de una clase. Esto permite al compilador saber que la función en particular es amiga de la clase dada. La función de amigo debería poder acceder al miembro privado y protegido de una clase determinada. Sin la palabra clave amigo, una función externa que no sea miembro solo puede acceder a los miembros públicos de una clase.

Características clave de la función de amigo:

Estas son las características clave de la función de amigo:

  1. Una función de amigo no está en el alcance de la clase.
  2. La función de amigo no se puede invocar utilizando una instancia de una clase.
  3. Puede acceder a los miembros utilizando el operador de objeto y punto.

Sintaxis de la función de amigo:

Aquí está la sintaxis de la función de amigo:

class Class_Name_Demo

..
..
amigo return_Type nombre_función (arg_1, arg_2,…);
;

Ejemplo de función de amigo:

Ahora, echemos un vistazo a un programa de ejemplo para comprender el concepto de la función amiga en C++. En el siguiente programa de ejemplo, tenemos la clase "Friend_Demo". Tiene tres tipos diferentes de miembros de datos, yo.mi., privado, protegido y público.

Hemos definido otra función, yo.mi., "FriendDemo_Func ()" fuera del alcance de la clase "Friend_Demo" e intentó acceder a los miembros (privados, protegidos y públicos) de la clase "Friend_Demo".

Pero, como puede ver en el resultado a continuación cuando compilamos el programa, arroja errores de compilación. La función de amigo va a resolver exactamente este problema.

#incluir
usando el espacio de nombres std;
clase Friend_Demo

privado:
int i_private;
protegido:
int i_protected;
público:
int i_public;
;
vacío friendDemo_Func ()

Friend_Demo fd;
fd.i_private = 10;
fd.i_protegido = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
return 0;

En el programa anterior, recibíamos errores de compilación al intentar acceder a los miembros privados, protegidos y públicos de una clase desde una función que no era miembro. Esto se debe a que una función que no es miembro no puede acceder a los miembros privados y protegidos de una clase desde fuera del alcance de la clase.

Ahora, en este ejemplo, hemos declarado la función "friendDemo_Func ()" como un amigo dentro del alcance de la clase, i.mi., "Friend_Demo":

amigo void friendDemo_Func ();

Hemos creado un objeto, yo.mi., "Fd" de la clase "Friend_Demo" dentro de la función "friendDemo_Func ()". Ahora, podemos acceder a los miembros privados, protegidos y públicos de la clase "Friend_Demo" usando el operador de punto. Hemos asignado 10, 15 y 20 a i_private, i_protected e i_public, respectivamente.

Como puede ver en el resultado a continuación, este programa ahora se compila y ejecuta sin errores e imprime el resultado como se esperaba.

#incluir
usando el espacio de nombres std;
clase Friend_Demo

privado:
int i_private;
protegido:
int i_protected;
público:
int i_public;
amigo void friendDemo_Func ();
;
vacío friendDemo_Func ()

Friend_Demo fd;
fd.i_private = 10;
fd.i_protegido = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
return 0;

Conclusión:

En este artículo, he explicado el concepto de función amigo en C++. También he mostrado dos ejemplos de trabajo para explicar cómo se comporta la función de amigo en C++. A veces, la función de amigo puede ser muy útil en un entorno de programación complejo. Sin embargo, un programador debe tener cuidado al usarlo en exceso y comprometer sus características de programación orientada a objetos.

Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...