Hvordan man bedst udnytter Scope Resolution Operator i C ++?



Denne artikel introducerer dig til omfangsopløsningsoperator i C ++ og følger den op med programmatisk demonstration for detaljeret forståelse.

Som navnet antyder, bruges Scope resolution operator til at få de skjulte navne på grund af variable rækkevidde, så du stadig kan bruge dem. I denne artikel vil vi forstå, hvordan man bruger omfangsopløsningsoperator i C ++ & hvad er dens forskellige formål fra en .

I C ++ er omfangsopløsningsoperator ::. Scope resolution operator i C ++ kan bruges til:





Lad os nu forstå hvert af formålene en efter en ved hjælp af eksempler.

Adgang til en global variabel, når der er en lokal variabel med samme navn

Du kan bruge omfangsopløsningsoperator til at få adgang til den globale variabel, hvis du har en lokal variabel med samme navn. I nedenstående eksempel har vi to variabler, der begge hedder num med globalt og lokalt omfang. Så for at få adgang til den globale variabel num i hovedklassen skal du bruge omfangsopløsningsoperator (dvs. :: num).



Eksempel

#include ved hjælp af namespace std int num = 30 // Initialisering af en global variabel num int main () {int num = 10 // Initialisering af den lokale variabel num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Produktion

Fortsætter med denne artikel om Scope Resolution Operator In C ++



Definition af en funktion uden for en klasse

Hvis du erklærer en funktion i en klasse og senere vil definere den uden for klassen, kan du gøre det ved hjælp af områdeløsningsoperator. I nedenstående eksempel erklærer vi en funktion Speed ​​i Class Bike. Senere definerer vi funktionen i hovedklassen ved hjælp af omfangsopløsningsoperator.

Eksempel

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definering af Speed-funktionen uden for Bike-klasse ved hjælp af: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Produktion

Fortsætter med denne artikel om Scope Resolution Operator In C ++

Adgang til klassens statiske variabler

Du kan få adgang til klassens statiske variabel ved hjælp af klassenavn og omfangsopløsningsoperator (dvs. klasse_navn :: statisk_variable). Du kan se i nedenstående eksempel, vi erklærer en statisk variabel i klassen. Vi definerer variablen uden for klassen ved hjælp af operatøren for omfangsopløsning. Så har vi adgang til det ved hjælp af klassenavn og omfangsopløsningsoperator.

Eksempel

#include using namespace std class Prøv {static int num1 public: static int num2 // Lokal parameter skjuler class member // Class member kan fås ved hjælp af :: void function (int num1) {// num1 static variabel kan fås ved hjælp af :: // til trods for den lokale variabel 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 } 

Produktion

Fortsætter med denne artikel om Scope Resolution Operator In C ++

Henviser til en klasse inde i en anden klasse

Du kan oprette indlejret klasse med samme variabelnavne i begge klasser. Du kan få adgang til begge variabler ved hjælp af omfangsopløsningsoperator. For den indre klassevariabel skal du bruge Outer_Class :: Inner_Class :: variable.

Eksempel

#include ved hjælp af namespace std klasse 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}

Fortsætter med denne artikel om Scope Resolution Operator In C ++

I tilfælde af flere arv

Hvis du har to overordnede klasser med samme variabelnavne, og du arver dem begge i underklassen, kan du bruge omfangsopløsningsoperator med klassens navn til at få adgang til de enkelte variabler.

I nedenstående eksempel opretter vi to overordnede klasser Parent1 & Parent2, og begge har variabel num. Når vi arver dem begge i underordnet klasse, kan vi få adgang til begge numvariablerne ved hjælp af klassenavn og omfangsopløsningsoperator.

Eksempel

#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: ugyldig funktion () {cout<< 'Parent1's num is ' << Parent1::num cout << 'nParent2's num is ' << Parent2::num } } int main() { Child obj obj.function() return 0 } 

Produktion

Fortsætter med denne artikel om Scope Resolution Operator In C ++

Navneområde

Antag, at vi har to navneområder, og begge indeholder klasse med samme navn. Så for at undgå enhver konflikt kan vi bruge navneområdet navn med operatøren for omfangsopløsning. I nedenstående eksempel bruger vi std :: cout .

Eksempel

datatype for dato i sql
#include int main () {std :: cout<< 'Hello' << std::endl } 

Produktion

Efter at have gennemgået ovenstående programmer ville du have forstået alt om omfangsopløsningsoperator i C ++. Jeg håber, at denne blog er informativ og merværdi for dig.

Efter at have udført ovenstående program, ville du have forstået Scope Resolution Operator In C ++. Således er vi nået til slutningen af ​​denne artikel om 'Quicksort in Java'. Hvis du ønsker at lære mere, skal du tjekke Java Training af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.