Table des matières
Utilisez les méthodes getter et setter pour accéder aux membres des données
Grammaire
Exemple
Sortie
Accéder à la fonction membre depuis une autre fonction
Utilisez les cours d'amis
Utilisez les fonctions d'ami
Conclusion
Maison développement back-end C++ Le programme C++ accède aux membres privés de la classe

Le programme C++ accède aux membres privés de la classe

Sep 08, 2023 am 08:17 AM
c 访问 membre privé

Le programme C++ accède aux membres privés de la classe

Les membres privés d'une classe ne sont accessibles qu'aux membres de la classe. Ceci est fait pour maintenir les principes d'encapsulation orientée objet, garantissant que les données et leurs fonctions associées sont conservées dans une unité et ne sont accessibles qu'aux membres de la classe. C++ dispose de trois contrôles d'accès différents pour spécifier la visibilité des membres d'une classe. Ces trois caractères de contrôle d'accès sont −

  • Public − Si les membres d'une classe ont une visibilité publique, alors ces membres sont accessibles depuis n'importe quelle autre classe.

  • Privé − Les membres de la classe ayant une visibilité privée ne sont accessibles que depuis l'intérieur de la classe.

  • Protégé − les membres de la classe protégés sont accessibles depuis with9in la classe ou depuis ses sous-classes uniquement.

Pour cet article, nous nous concentrerons uniquement sur l'accès aux membres privés d'une classe.

Utilisez les méthodes getter et setter pour accéder aux membres des données

Les fonctions Getter et setter sont utilisées pour accéder et modifier les membres privés d'une classe. Comme son nom l'indique, la fonction getter renvoie le membre de données, tandis que la fonction setter est utilisée pour "set" ou modifier le membre de données. Nous utilisons deux exemples pour mieux comprendre ce concept, mais avant cela, la syntaxe de base est donnée ci-dessous.

Grammaire

Fonctions Getter/Accesseur −

private:
   <datatype> value;
public:
   <datatype> getterFunction() {
     return <datatype> this->value;
   }
Copier après la connexion

Fonction Setter/Mutator−

private:
   <datatype> value;
public:
   void setterFunction(<datatype> _value) {
     this->value = _value;
   }
Copier après la connexion
La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

using namespace std;

class Test{
   private:
      int value;
   public:
      //the getter function
      int getValue() {
         return this->value;
      }
      //the setter function
      void setValue(int _value) {
         this->value = _value;
      }
};

int main(){
   Test test;
   test.setValue(15);
   cout << "The value we set is: " << test.getValue() << endl;
   return 0;
}
Copier après la connexion

Sortie

The value we set is: 15
Copier après la connexion

Accéder à la fonction membre depuis une autre fonction

La situation est la même lorsque l'on accède à une fonction de membre privé. Nous devons y accéder depuis la méthode membre de classe de la même manière que nous accédons aux données membres. Nous pouvons utiliser le pointeur "this" pour éviter les conflits de noms.

Grammaire

private:
   <returntype> function_name(params) {};
public:
   <returntype> another_function(params) {
     <datatype> var = this->function_name(arguments);
   }
Copier après la connexion

Les fonctions qui appellent des fonctions membres privées doivent être déclarées publiques. La fonction publique ne sera exécutée que lorsqu'elle sera appelée depuis un objet de cette classe.

La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

using namespace std;

class Test{
   private:
      int value;
      //multiplies the member value by 10
      void multiplyValue() {
         this->value = this->value * 10;
      }
   public:
      //the getvalue function calls the multiply value function
      int multiplyAndGetValue() {
         this->multiplyValue();
         return this->value;
      }
      //the setter function
      void setValue(int _value) {
         this->value = _value;
      }
};

int main(){
   Test test;
   test.setValue(15);
   cout << "The value after setting and multiplying is: " << test.multiplyAndGetValue() << endl;
   return 0;
}
Copier après la connexion

Sortie

The value after setting and multiplying is: 150
Copier après la connexion

Utilisez les cours d'amis

En C++, une classe amie est une classe qui peut accéder aux membres privés et protégés d'autres classes qui ne sont pas visibles par les autres classes. Pour déclarer une classe comme amie d’une autre classe, utilisez le mot-clé « friend ». Voyons comment cela fonctionne.

Grammaire

class A{
   private:
     .....
   friend class B;
};

class B{
   //class body
};
Copier après la connexion
La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

using namespace std;

class Test1{
   private:
      int value;
   public:
      Test1(int _value) {
         this->value = _value;
      }
      //we declare another class as a friend
      friend class Test2;
};

class Test2{
  public:
   //displays the value of the other class object
   void display(Test1 &t) {
      cout << "The value of Test1 object is: " << t.value;
   }
};

int main(){
   //creating two class objects of the two classes
   Test1 test1(15);
   Test2 test2;

   //calling the friend class function
   test2.display(test1);
   return 0;
}
Copier après la connexion

Sortie

The value of Test1 object is: 15
Copier après la connexion

Utilisez les fonctions d'ami

En C++, les fonctions d'amis sont similaires aux classes d'amis. Ici, nous pouvons déclarer une fonction spécifique qui n'est pas membre de la classe comme « ami » et elle aura accès aux membres privés de la classe. Examinons la syntaxe permettant de définir une fonction comme « friend ».

Grammaire

class A{
   private:
     .....
   friend <return_type> function_name(params);
};

<return_type> function_name(params) {
   //function body
}
Copier après la connexion
La traduction chinoise de

Exemple

est :

Exemple

#include <iostream>

using namespace std;

class Test1{
   private:
      int value;
   public:
      Test1(int _value) {
         this->value = _value;
      }
      //we declare a friend function
      friend void display(Test1);
};

void display(Test1 t) {
   cout << "The value of Test1 object is: " << t.value;
}

int main(){
   //creating two class objects of the two classes
   Test1 test1(55);
   //calling the friend class function
   display(test1);
   return 0;
}
Copier après la connexion

Sortie

The value of Test1 object is: 55
Copier après la connexion

Conclusion

Lorsque nous accédons aux données privées membres d'une classe, il est préférable d'utiliser les fonctions accesseur/getter et modificateur/setter. Il s’agit du moyen le plus sûr d’accéder aux données membres d’une classe. Une chose à retenir est que les fonctions qui accèdent aux membres privés doivent être déclarées publiques. Les fonctions Friend ne sont pas disponibles dans d'autres langages orientés objet car cela ne préserve pas toujours les propriétés de l'encapsulation orientée objet. La relation amie est asymétrique. Si la classe A déclare la classe B comme amie, alors la classe B aura accès à tous les membres de A, mais A ne pourra pas accéder à tous les membres privés de B.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que sont les constantes en langage C ? Pouvez-vous donner un exemple ? Que sont les constantes en langage C ? Pouvez-vous donner un exemple ? Aug 28, 2023 pm 10:45 PM

Une constante est aussi appelée variable et une fois définie, sa valeur ne change pas lors de l'exécution du programme. Par conséquent, nous pouvons déclarer une variable comme une constante faisant référence à une valeur fixe. On l'appelle aussi texte. Les constantes doivent être définies à l'aide du mot-clé Const. Syntaxe La syntaxe des constantes utilisées dans le langage de programmation C est la suivante - consttypeVariableName; (ou) consttype*VariableName; Différents types de constantes Les différents types de constantes utilisées dans le langage de programmation C sont les suivants : Constantes entières - Par exemple : 1,0 ,34, 4567 Constantes à virgule flottante - Exemple : 0.0, 156.89, 23.456 Constantes octales et hexadécimales - Exemple : Hex : 0x2a, 0xaa.. Octal

iOS 17 : Comment contrôler quelles applications peuvent accéder à vos photos iOS 17 : Comment contrôler quelles applications peuvent accéder à vos photos Sep 13, 2023 pm 09:09 PM

Dans iOS17, Apple a plus de contrôle sur ce que les applications peuvent voir sur les photos. Lisez la suite pour savoir comment gérer l'accès aux applications par application. Sous iOS, le sélecteur de photos intégré à l'application d'Apple vous permet de partager des photos spécifiques avec l'application, tandis que le reste de votre photothèque reste privé. Les applications doivent demander l'accès à l'intégralité de votre photothèque et vous pouvez choisir d'accorder l'accès suivant aux applications : Accès restreint – Les applications ne peuvent voir que les images que vous pouvez sélectionner, ce que vous pouvez faire à tout moment dans l'application ou en accédant aux paramètres. > Confidentialité et sécurité > Photos pour afficher les images sélectionnées. Accès complet – L'application peut afficher des photos

VSCode et VS C++ IntelliSense ne fonctionnent pas ou ne récupèrent pas les bibliothèques VSCode et VS C++ IntelliSense ne fonctionnent pas ou ne récupèrent pas les bibliothèques Feb 29, 2024 pm 01:28 PM

VS Code et Visual Studio C++ IntelliSense peuvent ne pas être en mesure de récupérer les bibliothèques, en particulier lorsque vous travaillez sur de grands projets. Lorsque nous survolons #Include&lt;wx/wx.h&gt;, nous voyons le message d'erreur "CannotOpen source file 'string.h'" (dépend de "wx/wx.h") et parfois, la fonction de saisie semi-automatique ne répond pas. Dans cet article, nous verrons ce que vous pouvez faire si VSCode et VSC++ IntelliSense ne fonctionnent pas ou n'extraient pas de bibliothèques. Pourquoi mon Intellisense ne fonctionne-t-il pas en C++ ? Lorsque vous travaillez avec des fichiers volumineux, IntelliSense parfois

Comment accéder aux champs, tableaux et objets imbriqués JSONNode en Java ? Comment accéder aux champs, tableaux et objets imbriqués JSONNode en Java ? Aug 30, 2023 pm 11:05 PM

Un JsonNode est le modèle d'arborescence JSON de Jackson qui peut lire JSON dans des instances JsonNode et écrire JsonNode dans JSON. Nous pouvons utiliser Jackson pour lire JSON dans un JsonNode en créant une instance ObjectMapper et en appelant la méthode readValue(). Nous pouvons accéder aux champs, tableaux ou objets imbriqués en utilisant la méthode get() de la classe JsonNode. Nous pouvons utiliser la méthode asText() pour renvoyer une représentation sous forme de chaîne valide et convertir la valeur du nœud en Javaint à l'aide de la méthode asInt() de la classe JsonNode. Dans l'exemple ci-dessous nous pouvons accéder à Json

Correction du code d'erreur Xbox 8C230002 Correction du code d'erreur Xbox 8C230002 Feb 27, 2024 pm 03:55 PM

Vous ne parvenez pas à acheter ou à regarder du contenu sur votre Xbox en raison du code d'erreur 8C230002 ? Certains utilisateurs continuent de recevoir cette erreur lorsqu'ils tentent d'acheter ou de regarder du contenu sur leur console. Désolé, il y a un problème avec le service Xbox. Réessayez plus tard. Pour obtenir de l'aide sur ce problème, visitez www.xbox.com/errorhelp. Code d'état : 8C230002 Ce code d'erreur est généralement provoqué par des problèmes temporaires de serveur ou de réseau. Cependant, il peut y avoir d'autres raisons, telles que les paramètres de confidentialité de votre compte ou le contrôle parental, qui peuvent vous empêcher d'acheter ou de visualiser un contenu spécifique. Correction du code d'erreur Xbox 8C230002 Si vous recevez le code d'erreur 8C lorsque vous essayez de regarder ou d'acheter du contenu sur votre console Xbox

Programme récursif pour trouver les éléments minimum et maximum d'un tableau en C++ Programme récursif pour trouver les éléments minimum et maximum d'un tableau en C++ Aug 31, 2023 pm 07:37 PM

Nous prenons le tableau d'entiers Arr[] en entrée. Le but est de trouver les éléments les plus grands et les plus petits d’un tableau en utilisant une méthode récursive. Puisque nous utilisons la récursion, nous allons parcourir l'ensemble du tableau jusqu'à ce que nous atteignions length = 1, puis retourner A[0], qui constitue le cas de base. Sinon, l'élément actuel est comparé à la valeur minimale ou maximale actuelle et sa valeur est mise à jour de manière récursive pour les éléments suivants. Examinons différents scénarios d'entrée et de sortie pour cela −Input −Arr={12,67,99,76,32}; Output −Valeur maximale dans le tableau : 99 Explication &mi ;

Accédez aux métadonnées de divers fichiers audio et vidéo à l'aide de Python Accédez aux métadonnées de divers fichiers audio et vidéo à l'aide de Python Sep 05, 2023 am 11:41 AM

Nous pouvons accéder aux métadonnées des fichiers audio en utilisant Mutagen et le module eyeD3 en Python. Pour les métadonnées vidéo, nous pouvons utiliser des films et la bibliothèque OpenCV en Python. Les métadonnées sont des données qui fournissent des informations sur d'autres données, telles que des données audio et vidéo. Les métadonnées des fichiers audio et vidéo incluent le format de fichier, la résolution du fichier, la taille du fichier, la durée, le débit binaire, etc. En accédant à ces métadonnées, nous pouvons gérer les médias plus efficacement et analyser les métadonnées pour obtenir des informations utiles. Dans cet article, nous examinerons certaines des bibliothèques ou modules fournis par Python pour accéder aux métadonnées des fichiers audio et vidéo. Accéder aux métadonnées audio Certaines bibliothèques permettant d'accéder aux métadonnées des fichiers audio utilisent la mutagenèse

Comment résoudre le problème d'inaccessibilité après le déploiement du package de guerre par Tomcat Comment résoudre le problème d'inaccessibilité après le déploiement du package de guerre par Tomcat Jan 13, 2024 pm 12:07 PM

Comment résoudre le problème selon lequel Tomcat ne parvient pas à accéder au package war après son déploiement nécessite des exemples de code spécifiques. En tant que serveur Web Java largement utilisé, Tomcat permet aux développeurs de regrouper leurs propres applications Web développées dans des fichiers war pour le déploiement. Cependant, nous pouvons parfois rencontrer le problème de l'impossibilité d'accéder au package war après son déploiement. Cela peut être dû à une configuration incorrecte ou à d'autres raisons. Dans cet article, nous fournirons quelques exemples de code concrets qui résolvent ce dilemme. 1. Vérifiez le service Tomcat

See all articles