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; }
Fonction Setter/Mutator−
private: <datatype> value; public: void setterFunction(<datatype> _value) { this->value = _value; }
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; }
Sortie
The value we set is: 15
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); }
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 deExemple
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; }
Sortie
The value after setting and multiplying is: 150
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 };
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; }
Sortie
The value of Test1 object is: 15
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 }
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; }
Sortie
The value of Test1 object is: 55
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

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

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<wx/wx.h>, 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

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

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

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 ;

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 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
