C ++ protégé

C ++ protégé

Comme de nombreux autres langages de programmation, C ++ nous fournit également la fonctionnalité des données se cachant à des fins de sécurité. Nous utilisons les modificateurs d'accès dans un programme C ++ pour protéger nos données à différents niveaux de sécurité. C ++ comprend les spécificateurs d'accès public, privé et protégé pour sécuriser ses variables et ses fonctions. Le spécificateur d'accès protégé est un peu différent du privé et du public. Cet article se concentrera sur le modificateur d'accès «protégé» dans les exemples de code C ++. Alors, commençons. Ouvrez l'application Shell, créez un nouveau fichier C ++ et ouvrez-le dans l'éditeur.

Exemple 01: public vs. Privé

Avant de nous concentrer sur le spécificateur d'accès protégé, nous devons apprendre le fonctionnement d'un spécificateur d'accès public et privé. Après avoir utilisé l'espace de noms C ++ au début d'un code, nous avons déclaré un test de classe avec une variable publique «A» et une variable privée «B». Nous avons initialisé un objet «t» d'une classe de test dans la méthode principale ().

La valeur 10 est affectée à la variable «A», qui est publique. En utilisant l'objet «cout», nous avons affiché la valeur de la variable «A» à l'aide de l'objet «T». Le même objet de classe de test «t» a été utilisé ici pour attribuer la valeur «12» à un membre de données privé «B». En utilisant à nouveau l'objet «cout», nous utilisons l'objet «T» pour afficher la valeur «B» variable. Enfin, l'instruction RETOUR 0 quittera le programme avec succès. Il est temps d'enregistrer ce nouveau code C ++ en premier et de le compiler sur le shell.

Vous devez vous assurer que le compilateur C ++ «G ++» est installé et entièrement configuré dans votre système. Nous avons donc essayé l'instruction du compilateur G ++ sur le shell suivant le nom d'un fichier «Protégé.CC ". Exécution de cette instruction du compilateur, nous avons l'erreur sur la ligne 13 lorsque nous attribuons la valeur à la variable privée «B» en utilisant l'objet «T». En effet, la variable privée dans le test de classe ne peut pas être utilisée en dehors de cette classe, je.e., Dans n'importe quelle fonction ou classe. Le modificateur d'accès public permettra à chaque variable et fonction d'être disponible pour tout le monde. En revanche, le modificateur d'accès privé n'autorise pas l'accès des variables et des fonctions à quiconque, je.e., toutes les classes.

Voyons comment nous pouvons utiliser des membres de données privés à afficher sur le shell. Nous avons mis à jour le même fichier C ++ dans le test de classe en déclarant les deux fonctions publiques, get () et set (). L'implémentation des deux fonctions a été effectuée en dehors de la classe «test». La fonction «get ()» est utilisée pour renvoyer la valeur du membre de données privées «y» à la fonction principale () pour l'affichage.

La fonction set () utilise la valeur réalisée par la fonction principale () et la affecte au membre de données privé «y» du test de classe. Dans la méthode Main (), nous avons utilisé l'objet «t» du test de classe pour attribuer la valeur «10» à la variable publique «x» du test de classe. L'instruction COUT affiche la valeur de «x» sur la coque. Maintenant, nous avons appelé la fonction set () par objet «t» pour passer la valeur «14» à un membre de données privé «y» de la classe «test». L'instruction COUT a appelé la fonction «get» pour afficher la valeur de la variable «y» sur le shell. Ce code nous permettra d'afficher la valeur des membres de données privées sur le shell en utilisant les mêmes fonctions de données publiques de classe. Enregistrons ce code et exécutons-le:

Nous avons les deux valeurs pour «x» et «y» affichés lors de l'exécution de ce code récemment mis à jour:

Exemple 02:

Jetons un œil au modificateur d'accès protégé maintenant. Nous avons ouvert le fichier de code et l'avons mis à jour un peu. Ajout des bibliothèques requises avec l'espace de noms C ++. A déclaré une classe de parents et une classe d'enfants dérivée du «parent». La classe parent contient une variable protégé «x» de type entier. La classe d'enfants ne contient que deux fonctions publiques, je.e., Définir et obtenir. Après les classes, nous avons implémenté les deux fonctions de la classe enfant en définissant la valeur de «x» et en retournant à la fonction principale ().

La fonction principale () est de créer un objet «C» pour la classe enfant. Cet objet est utilisé pour définir la valeur de la variable «x» et l'afficher sur le shell via la méthode Get (). L'utilisation d'un objet pour attribuer la valeur à la variable «x» affichera une erreur lors de l'exécution. Ensuite, enregistrez le code et quittez le fichier.

La sortie est la même que prévu, je.e., erreur.

Pour éviter cette erreur en attribuant la valeur à un membre de données protégé, nous devons utiliser les fonctions de données publiques, i.e., Définir et obtenir des fonctions dans la classe enfant. En utilisant la fonction set (), nous pouvons attribuer la valeur à la variable protégée «x» comme nous l'avons fait dans le code d'image suivant. Après cela, nous pouvons facilement utiliser la fonction get () pour afficher le membre de données protégé sur le shell dans l'instruction COUT OBJET. Enregistrez ce code et compilez-le après cela:

Après avoir compilé le code mis à jour, nous n'avons aucune erreur de compilation cette fois. Nous avons la valeur de la variable protégée «x» affichée sur l'écran du shell à l'aide de la requête d'exécution.

Exemple 03:

Jetons un coup d'œil à un autre exemple pour utiliser le modificateur d'accès protégé. Dans cet exemple, nous utiliserons la multi-inhérence pour le rendre plus clair et ajouter trois classes A, B et C. La classe A est la classe parent de B, et B est le parent de C. A et B contiennent les variables protégées «x» et «y». La classe B et C contient des fonctions en tant que membres de données publiques, i.e., set () et get ().

La classe B utilise ses fonctions pour définir et retourner la valeur pour le membre de données protégé A «X» comme B est sa classe dérivée. En revanche, la classe C utilise ses fonctions pour définir et obtenir la valeur «y» de la classe B car la classe C est sa classe dérivée. Dans la fonction de code de pilote Main (), nous avons créé un objet de classe B et définissait la valeur de la variable «x». Le même objet affiche la valeur de la variable «x» sur le shell. L'objet de classe C a été créé pour définir la valeur de la variable protégée «Y» et l'afficher sur le shell. Exécutons le code suivant pour voir les résultats:

La sortie montre l'utilisation de set () et les fonctions GETS () remplacent la valeur déjà initialisée pour les deux variables protégées.

Conclusion:

Il s'agissait d'utiliser un modificateur d'accès protégé pour sécuriser les membres de données pour les classes en C++. Pour le rendre plus clair, nous avons également discuté de l'exemple de l'utilisation de membres publics et privés. Nous avons également discuté de l'héritage pour démontrer le travail et l'utilisation de spécificateurs d'accès sécurisé dans notre code. L'utilisation de la fonction set () et get () est un plus pour éviter les erreurs lors de l'exécution de cet article. Nous espérons que vous avez trouvé cet article utile. Consultez les autres articles sur les conseils pour plus de conseils et de tutoriels.