Diferencia entre la función de amigo y la clase de amigo
Contenido
La función Amigo y la clase amigo son las técnicas utilizadas para acceder a los miembros privados de una clase mediante el uso de la palabra clave amigo. La diferencia común entre la función de amigo y la clase de amigo es que cuando se usa la función de amigo se puede acceder a los miembros de la clase privada, pero en la clase de amigo, solo se accede a los nombres de la clase de amigo, no a los miembros privados de la clase.
los característica de amigo si es utilizado por la función o la clase puede producir un impacto negativo en el marco orientado a objetos, ya que debilita el encapsulamiento que está en contra de orientado a objetos paradigma. Esta es la razón por la cual la función de amigo debe usarse sabiamente, de lo contrario podría rotura el ocultación de datos del código
Esta característica de amigo no es conmutativo y ni transitivo. X es amigo de Y no infiere que Y también es amigo de X. Si X es amigo de Y e Y es amigo de Z, no implica que X sea amigo de Z.
-
- Cuadro comparativo
- Definición
- Diferencias clave
- Conclusión
Cuadro comparativo
Bases para la comparación | Función de amigo | Clase amigo |
---|---|---|
Básico | Es una función utilizada con una palabra clave friend para otorgar acceso a una función que no sea miembro a los miembros privados de una clase. | Es una clase utilizada con una palabra clave amigo para acceder a los miembros privados de otra clase. |
Declaración de avance | Debe ser usado. | No es obligatorio. |
Utilizar | Se puede usar una función de amigo en alguna situación de sobrecarga del operador. | Se puede usar una clase de amigo cuando se crea una clase en la parte superior de otra clase. |
Definición de función de amigo
los función de amigo se utiliza para acceder a los miembros privados y protegidos de una clase al permitir que la función no miembro obtenga acceso. En este tipo de función, se usa una palabra clave friend antes del nombre de la función en el momento de la declaración. Existen algunas condiciones restrictivas aplicadas a la función de amigo. La primera condición es que la función amiga no es heredada por una clase secundaria. La segunda condición es que el especificador de clase de almacenamiento puede no estar presente en la función amiga, lo que significa que no se puede declarar como estático y externo.
La función de amigo no se llama con un objeto de invocación de la clase. Los ejemplos de función amiga son: una función global, función miembro de una clase, la plantilla de función puede ser una función amiga. Vamos a entenderlo con la ayuda de un ejemplo.
#incluir Se requiere una función amiga cuando una función necesita acceder a dos o más clases independientes, miembros internos. Por otro lado, se necesita una clase de amigo cuando una clase requiere acceder a los miembros de otra clase. Cuando una función de miembros múltiples necesita ser amiga de esa función, en ese caso, es mejor usar la clase de amigo.
Conclusión