Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende La Palabra Clave Friend | Visión General de la Encapsulación
POO en C++
course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
La Palabra Clave Friend

La palabra clave friend es un constructo único que representa una desviación de los principios estándar de encapsulamiento en la programación orientada a objetos. Permite que una función u otra class acceda a los miembros private y protected de una class.

main.cpp

main.cpp

copy
1234567891011121314151617
#include <iostream> class Example { private: const static int static_private_member = 0; friend void func(); // grants access to the private members to func() }; void func() { std::cout << Example::static_private_member; } int main() { func(); }

El uso de este enfoque rompe el encapsulamiento porque permite que entidades externas accedan a los miembros de la class. Sin embargo, pueden existir situaciones en las que sea necesario hacerlo. Por ejemplo:

KeyManager.h

KeyManager.h

copy
123456
class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; };

La encryptionKey se mantiene private, y no se proporciona un método de acceso porque se desea evitar el acceso externo desde fuera de la class. Pero, ¿qué sucede si es necesario utilizar un algoritmo externo para cifrar y descifrar? Aquí es donde entra en juego la palabra clave keyword.

KeyManager.h

KeyManager.h

CryptographicAlgorithm.h

CryptographicAlgorithm.h

copy
12345678910
#include "CryptographicAlgorithm.h" class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; // Allow CryptographicAlgorithm access to private members friend class CryptographicAlgorithm; };

El caso de uso más común para la palabra clave friend surge cuando se requieren soluciones rápidas, y se tiene la intención de refactorizarlo más adelante. Es preferible diseñar las relaciones de tus class sin depender de ella, aunque pueden presentarse escenarios específicos donde sea necesaria.

question mark

¿Para qué se utiliza la palabra clave friend?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
La Palabra Clave Friend

La palabra clave friend es un constructo único que representa una desviación de los principios estándar de encapsulamiento en la programación orientada a objetos. Permite que una función u otra class acceda a los miembros private y protected de una class.

main.cpp

main.cpp

copy
1234567891011121314151617
#include <iostream> class Example { private: const static int static_private_member = 0; friend void func(); // grants access to the private members to func() }; void func() { std::cout << Example::static_private_member; } int main() { func(); }

El uso de este enfoque rompe el encapsulamiento porque permite que entidades externas accedan a los miembros de la class. Sin embargo, pueden existir situaciones en las que sea necesario hacerlo. Por ejemplo:

KeyManager.h

KeyManager.h

copy
123456
class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; };

La encryptionKey se mantiene private, y no se proporciona un método de acceso porque se desea evitar el acceso externo desde fuera de la class. Pero, ¿qué sucede si es necesario utilizar un algoritmo externo para cifrar y descifrar? Aquí es donde entra en juego la palabra clave keyword.

KeyManager.h

KeyManager.h

CryptographicAlgorithm.h

CryptographicAlgorithm.h

copy
12345678910
#include "CryptographicAlgorithm.h" class KeyManager { public: KeyManager(const std::string& key) : encryptionKey(key) {} private: std::string encryptionKey; // Allow CryptographicAlgorithm access to private members friend class CryptographicAlgorithm; };

El caso de uso más común para la palabra clave friend surge cuando se requieren soluciones rápidas, y se tiene la intención de refactorizarlo más adelante. Es preferible diseñar las relaciones de tus class sin depender de ella, aunque pueden presentarse escenarios específicos donde sea necesaria.

question mark

¿Para qué se utiliza la palabra clave friend?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
some-alt