Com s'utilitza millor l'operador de resolució d'abast en C ++?



Aquest article us presentarà l’operador de resolució d’àmbit en C ++ i el seguirà demostració programàtica per a una comprensió detallada.

Com el seu nom indica, l'operador de resolució d'abast s'utilitza per obtenir els noms ocults a causa dels àmbits variables, de manera que pugueu utilitzar-los. En aquest article entendreem com utilitzar l'operador de resolució d'abast en C ++ i quins són els seus propòsits diferents a .

A C ++, l'operador de resolució d'abast és ::. L'operador de resolució d'abast en C ++ es pot utilitzar per:





Ara entenem cadascun dels propòsits un per un amb l’ajut d’exemples.

Accedir a una variable global quan hi ha una variable local amb el mateix nom

Podeu utilitzar l'operador de resolució d'abast per accedir a la variable global si teniu una variable local amb el mateix nom. A l'exemple següent, tenim dues variables ambdues amb nom amb abast global i local. Per tant, per accedir a la variable num global de la classe principal heu d’utilitzar un operador de resolució d’àmbit (és a dir: :: num).



Exemple

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

Sortida

Continuem amb aquest article sobre Scope Resolution Operator In C ++



Definició d'una funció fora d'una classe

Si declareu una funció en una classe i després voleu definir-la fora de la classe, podeu fer-ho mitjançant l'operador de resolució d'abast. A l'exemple següent, declarem una funció Speed ​​in Class Bike. Més endavant definirem la funció a la classe principal mitjançant l'operador de resolució d'abast.

Exemple

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definició de la funció Speed ​​fora de la classe Bike mitjançant: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Sortida

Continuem amb aquest article sobre Scope Resolution Operator In C ++

Accedir a l’estàtica d’una classe variables

Podeu accedir a la variable estàtica de la classe mitjançant l’operador de resolució d’abast i nom de classe (és a dir, nom_classe :: variable_estàtica). Podeu veure a l'exemple següent, declarem una variable estàtica a la classe. Estem definint la variable fora de la classe mitjançant l'operador de resolució d'abast. A continuació, hi accedim mitjançant l'operador de resolució d'abast i nom de classe.

Exemple

#include using namespace std class Try {static int num1 public: static int num2 // El paràmetre local amaga el membre de la classe // Es pot accedir al membre de la classe mitjançant la funció :: void (int num1) {// num1 es pot accedir a la variable estàtica :: // malgrat la variable local 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 } 

Sortida

Continuem amb aquest article sobre Scope Resolution Operator In C ++

revers d'un número en java

Referir-se a una classe dins d’una altra classe

Podeu crear classes imbricades amb els mateixos noms de variables a les dues classes. Podeu accedir a les dues variables mitjançant l'operador de resolució d'abast. Per a la variable de classe interna, cal utilitzar-la 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}

Continuem amb aquest article sobre Scope Resolution Operator In C ++

En cas d’herència múltiple

Si teniu dues classes pares amb els mateixos noms de variables i les hereteu a la classe fill, podeu utilitzar l'operador de resolució d'abast amb el nom de la classe per accedir a les variables individuals.

A l'exemple següent, estem creant dues classes pares Parent1 i Parent2, i tots dos tenen una variable num. Quan heretem tots dos a la classe Child, podem accedir a les dues variables num mitjançant l’operador de resolució d’abast i nom de classe.

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 { públic: funció buida () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Sortida

Continuem amb aquest article sobre Scope Resolution Operator In C ++

Espai de noms

Suposem que tenim dos espais de noms i que tots dos contenen classe amb el mateix nom. Per tant, per evitar qualsevol conflicte, podem utilitzar el nom de l’espai de noms amb l’operador de resolució d’abast. A l'exemple següent que fem servir std :: cout .

Exemple

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

Sortida

Ara, després de passar pels programes anteriors, hauríeu entès tot sobre l'operador de resolució d'abast en C ++. Espero que aquest bloc us sigui informatiu i de valor afegit.

Ara, després d'executar el programa anterior, hauríeu entès l'operador de resolució d'abast en C ++. Així hem arribat al final d’aquest article sobre ‘Quicksort a Java’. Si voleu obtenir més informació, consulteu el programa Java Training d’Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.