Comment utiliser au mieux l'opérateur de résolution d'étendue en C ++?

Cet article vous présentera l'opérateur de résolution de portée en C ++ et suivra une démonstration par programmation pour une compréhension détaillée.

Comme son nom l'indique, l'opérateur de résolution de portée est utilisé pour obtenir les noms masqués en raison des portées variables afin que vous puissiez toujours les utiliser. Dans cet article, nous allons comprendre comment utiliser l'opérateur de résolution de portée en C ++ et quels sont ses différents objectifs par rapport à un .



En C ++, l'opérateur de résolution de portée est ::. L'opérateur de résolution de portée en C ++ peut être utilisé pour:



Voyons maintenant chacun des objectifs un par un à l’aide d’exemples.

Accéder à une variable globale lorsqu'il existe une variable locale avec même nom

Vous pouvez utiliser l'opérateur de résolution d'étendue pour accéder à la variable globale si vous avez une variable locale avec le même nom. Dans l'exemple ci-dessous, nous avons deux variables nommées num avec une portée globale et locale. Ainsi, pour accéder à la variable globale num dans la classe principale, vous devez utiliser l'opérateur de résolution de portée (c'est-à-dire :: num).



Exemple

#include using namespace std int num = 30 // Initialisation d'une variable globale num int main () {int num = 10 // Initialisation de la variable locale num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Production

Passer à cet article sur l'opérateur de résolution d'étendue en C ++



Définir une fonction en dehors d'une classe

Si vous déclarez une fonction dans une classe et que vous souhaitez ensuite la définir en dehors de la classe, vous pouvez le faire à l'aide de l'opérateur de résolution de portée. Dans l'exemple ci-dessous, nous déclarons une fonction Speed ​​in Class Bike. Plus tard, nous définissons la fonction dans la classe principale à l'aide de l'opérateur de résolution de portée.

Exemple

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Définition de la fonction Speed ​​en dehors de la classe Bike en utilisant :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Production

Passer à cet article sur l'opérateur de résolution d'étendue en C ++

Accéder à la statique d'une classe variables

Vous pouvez accéder à la variable statique de la classe à l’aide de l’opérateur de résolution de nom de classe et de portée (par exemple, nom_classe :: variable_statique). Vous pouvez voir dans l'exemple ci-dessous, nous déclarons une variable statique dans la classe. Nous définissons la variable en dehors de la classe à l'aide de l'opérateur de résolution de portée. Ensuite, nous y accédons en utilisant le nom de classe et l'opérateur de résolution de portée.

Exemple

#include using namespace std class Try {static int num1 public: static int num2 // Le paramètre local masque le membre de la classe // Le membre de la classe est accessible en utilisant :: void function (int num1) {// num1 variable statique accessible en utilisant :: // malgré la variable locale num1 cout<< 'Static num1: ' << Try::num1 cout << 'nLocal num1: ' << num1 } } // Defining a static members explicitly using :: int Try::num1 = 10 int Try::num2 = 15 int main() { Try o int num1 = 20 o.function(num1) cout << 'nTry::num2 = ' << Try::num2 return 0 } 

Production

Passer à cet article sur l'opérateur de résolution d'étendue en C ++

Faire référence à une classe dans une autre classe

Vous pouvez créer une classe imbriquée avec les mêmes noms de variable dans les deux classes. Vous pouvez accéder aux deux variables à l'aide de l'opérateur de résolution de portée. Pour la variable de classe interne, vous devez utiliser Outer_Class :: Inner_Class :: variable.

Exemple

#include using namespace std class Outside_class {public: int num class Inside_class {public: int num static int x}} int Outside_class :: Inside_class :: x = 5 int main () {Outside_class A Outside_class :: Inside_class B}

Passer à cet article sur l'opérateur de résolution d'étendue en C ++

comment faire de la puissance en python

En cas d'héritage multiple

Si vous avez deux classes parentes avec les mêmes noms de variable et que vous héritez des deux dans la classe enfant, vous pouvez utiliser l'opérateur de résolution d'étendue avec le nom de classe pour accéder aux variables individuelles.

Dans l'exemple ci-dessous, nous créons deux classes parent Parent1 et Parent2, et les deux ont la variable num. Lorsque nous héritons des deux dans la classe Child, nous pouvons accéder aux deux variables num en utilisant le nom de classe et l'opérateur de résolution de portée.

Exemple

#include using namespace std class Parent1 {protected: int num public: Parent1 () {num = 100}} class Parent2 {protected: int num public: Parent2 () {num = 200}} class Child: public Parent1, public Parent2 { public: fonction void () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Production

Passer à cet article sur l'opérateur de résolution d'étendue en C ++

Espace de noms

Supposons que nous ayons deux espaces de noms et que les deux contiennent une classe avec le même nom. Donc, pour éviter tout conflit, nous pouvons utiliser le nom de l'espace de noms avec l'opérateur de résolution de portée. Dans l'exemple ci-dessous, nous utilisons std :: cout .

Exemple

#include int main () {std :: cout<< 'Hello' << std::endl } 

Production

Maintenant, après avoir parcouru les programmes ci-dessus, vous auriez tout compris sur l'opérateur de résolution de portée en C ++. J'espère que ce blog est informatif et a une valeur ajoutée pour vous.

Maintenant, après avoir exécuté le programme ci-dessus, vous auriez compris l'opérateur de résolution de portée en C ++. Nous sommes donc arrivés à la fin de cet article sur «Quicksort en Java». Si vous souhaitez en savoir plus, consultez la formation Java d'Edureka, une entreprise de formation en ligne de confiance. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog et nous vous répondrons dans les plus brefs délais.