Hur man bäst använder Scope Resolution Operator i C ++?



Den här artikeln presenterar dig för scope resolution operator i C ++ och följer upp den programmatiska demonstrationen för detaljerad förståelse.

Som namnet antyder används Scope resolution operator för att få de dolda namnen på grund av variabla omfattningar så att du fortfarande kan använda dem. I den här artikeln kommer vi att förstå hur man använder scope resolution operator i C ++ & vad är dess olika syften från a .

I C ++ är omfångsupplösningsoperatören ::. Scope resolution operator i C ++ kan användas för:





Låt oss nu förstå vart och ett av syftena en efter en med hjälp av exempel.

Åtkomst till en global variabel när det finns en lokal variabel med samma namn

Du kan använda omfångsupplösningsoperatören för att komma åt den globala variabeln om du har en lokal variabel med samma namn. I exemplet nedan har vi två variabler som båda heter num med globalt och lokalt omfång. Så, för att komma åt den globala numvariabeln i huvudklassen måste du använda scope resolution operator (dvs. :: num).



Exempel

#include using namespace std int num = 30 // Initiera en global variabel num int main () {int num = 10 // Initialisera den lokala variabeln num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Produktion

Fortsätter med den här artikeln om Scope Resolution Operator In C ++



Definiera en funktion utanför en klass

Om du förklarar en funktion i en klass och sedan vill definiera den utanför klassen kan du göra det med hjälp av operatör för upplösning av omfång. I exemplet nedan förklarar vi en funktion Speed ​​in Class Bike. Senare definierar vi funktionen i huvudklassen med hjälp av omfångsupplösningsoperatören.

Exempel

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definiera hastighetsfunktionen utanför Bike class med :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Produktion

Fortsätter med den här artikeln om Scope Resolution Operator In C ++

Åtkomst till klassens statiska variabler

Du kan komma åt klassens statiska variabel med hjälp av operatören för klassnamn och omfångsupplösning (dvs. klassnamn :: statisk_variabel). Du kan se i exemplet nedan, vi deklarerar en statisk variabel i klassen. Vi definierar variabeln utanför klassen med hjälp av operatören för omfångsupplösning. Sedan kommer vi åt det med hjälp av klassnamn och omfångsupplösningsoperatör.

Exempel

#include using namespace std class Prova {static int num1 public: static int num2 // Lokal parameter döljer klassmedlem // Klassmedlem kan nås med :: void-funktion (int num1) {// num1 statisk variabel kan nås med :: // trots den lokala variabeln 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 den här artikeln om Scope Resolution Operator In C ++

Hänvisar till en klass i en annan klass

Du kan skapa kapslad klass med samma variabelnamn i båda klasserna. Du kan komma åt båda variablerna med operatör för upplösning för omfång. För den inre klassvariabeln måste du använda Outer_Class :: Inner_Class :: variabel.

Exempel

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

Fortsätter med den här artikeln om Scope Resolution Operator In C ++

Vid flera arv

Om du har två överordnade klasser med samma variabelnamn och du ärver båda i barnklassen kan du använda operatör för upplösning av omfång med klassnamnet för att komma åt de enskilda variablerna.

I exemplet nedan skapar vi två föräldraklasser Parent1 & Parent2, och båda har variabelt antal. När vi ärver båda i barnklassen kan vi komma åt båda num variablerna med hjälp av operatören för klassnamn och omfångsupplösning.

Exempel

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

Produktion

vad är det bästa för Java

Fortsätter med den här artikeln om Scope Resolution Operator In C ++

Namnområde

Anta att vi har två namnområden och båda innehåller klass med samma namn. Så för att undvika konflikter kan vi använda namnrymdnamn med operatören för omfångsupplösning. I exemplet nedan använder vi std :: cout .

Exempel

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

Produktion

Nu efter att ha gått igenom ovanstående program skulle du ha förstått allt om scope resolution operator i C ++. Jag hoppas att den här bloggen är informativ och ger ett mervärde för dig.

Efter att ha kört ovanstående program skulle du ha förstått Scope Resolution Operator In C ++. Således har vi kommit till slutet av den här artikeln om ”Quicksort in Java”. Om du vill lära dig mer, kolla in Java Training av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.