Hvordan du best kan bruke Scope Resolution Operator i C ++?



Denne artikkelen vil introdusere deg for omfangsoppløsningsoperatør i C ++ og følge den opp programmatisk demonstrasjon for detaljert forståelse.

Som navnet antyder, brukes Scope resolution operator for å få de skjulte navnene på grunn av variabelt omfang, slik at du fortsatt kan bruke dem. I denne artikkelen vil vi forstå hvordan du kan bruke omfangsoppløsningsoperatør i C ++ og hva er dens forskjellige formål fra en .

I C ++ er omfangsoppløsningsoperator ::. Scope resolution operator i C ++ kan brukes til:





La oss nå forstå hvert av formålene en etter en ved hjelp av eksempler.

Tilgang til en global variabel når det er en lokal variabel med samme navn

Du kan bruke omfangsoppløsningsoperatøren for å få tilgang til den globale variabelen hvis du har en lokal variabel med samme navn. I eksemplet nedenfor har vi to variabler som begge heter num med globalt og lokalt omfang. Så for å få tilgang til den globale numvariabelen i hovedklassen må du bruke omfangsoppløsningsoperator (dvs. :: num).



Eksempel

# inkludere bruk av navneområdet std int num = 30 // Initialisering av en global variabel num int main () {int num = 10 // Initialisering av den lokale variabelen num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Produksjon

Fortsetter med denne artikkelen om Scope Resolution Operator In C ++



Definere en funksjon utenfor en klasse

Hvis du erklærer en funksjon i en klasse og senere vil definere den utenfor klassen, kan du gjøre det ved hjelp av omfangsoppløsningsoperator. I eksemplet nedenfor erklærer vi en funksjon Speed ​​in Class Bike. Senere definerer vi funksjonen i hovedklassen ved hjelp av operatøren for omfangsoppløsning.

Eksempel

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definere Speed-funksjonen utenfor Bike class ved å bruke :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Produksjon

Fortsetter med denne artikkelen om Scope Resolution Operator In C ++

Få tilgang til klassens statiske variabler

Du får tilgang til klassens statiske variabel ved å bruke klassenavn og omfangsoppløsningsoperator (dvs. klasse_navn :: statisk_variabel). Du kan se i eksemplet nedenfor, vi erklærer en statisk variabel i klassen. Vi definerer variabelen utenfor klassen ved hjelp av operatøren for omfangsoppløsning. Da får vi tilgang til det ved hjelp av klassenavn og omfangsoppløsningsoperatør.

Eksempel

#include using namespace std class Prøv {static int num1 public: static int num2 // Local parameter hides class member // Class member can be accessed it using :: void function (int num1) {// num1 static variable kan nås ved hjelp av :: // til tross for lokal 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 } 

Produksjon

Fortsetter med denne artikkelen om Scope Resolution Operator In C ++

Henviser til en klasse i en annen klasse

Du kan opprette nestet klasse med samme variabelnavn i begge klassene. Du kan få tilgang til begge variablene ved hjelp av omfangsoppløsningsoperator. For den indre klassevariabelen må du bruke Outer_Class :: Inner_Class :: variable.

Eksempel

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

Fortsetter med denne artikkelen om Scope Resolution Operator In C ++

I tilfelle flere arv

Hvis du har to overordnede klasser med samme variabelnavn og du arver dem begge i underklassen, kan du bruke omfangsoppløsningsoperator med klassenavnet for å få tilgang til de enkelte variablene.

I eksemplet nedenfor lager vi to foreldreklasser Parent1 & Parent2, og begge har variabel num. Når vi arver dem begge i underordnet klasse, kan vi få tilgang til begge variablene ved å bruke klassenavn og omfangsoppløsningsoperator.

java script pop-up melding

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

Produksjon

Fortsetter med denne artikkelen om Scope Resolution Operator In C ++

Navneområde

Anta at vi har to navnerom og begge inneholder klasse med samme navn. Så for å unngå konflikter kan vi bruke navnefeltnavn med operatøren for omfangsoppløsning. I eksemplet nedenfor bruker vi std :: cout .

Eksempel

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

Produksjon

Nå etter å ha gått gjennom de ovennevnte programmene, ville du ha forstått alt om omfangsoppløsningsoperatør i C ++. Jeg håper denne bloggen er informativ og gir merverdi for deg.

Nå etter å ha utført programmet ovenfor, ville du ha forstått Scope Resolution Operator In C ++. Dermed har vi kommet til en slutt på denne artikkelen om ‘Quicksort in Java’. Hvis du ønsker å lære mer, kan du sjekke Java Training av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.