Hoe de Scope Resolution Operator het beste te gebruiken in C ++?

Dit artikel zal u kennis laten maken met de scope-resolutieoperator in C ++ en deze programmatische demonstratie volgen voor gedetailleerd begrip.

Zoals de naam doet vermoeden, wordt Scope-resolutieoperator gebruikt om de verborgen namen op te halen vanwege variabele scopes, zodat u ze nog steeds kunt gebruiken. In dit artikel zullen we begrijpen hoe u de scope-resolutie-operator in C ++ kunt gebruiken en wat de verschillende doeleinden zijn van een .

In C ++ is de operator voor bereikresolutie ::. Scope-resolutie-operator in C ++ kan worden gebruikt voor:



Laten we nu elk doel een voor een begrijpen met behulp van voorbeelden.

Toegang krijgen tot een globale variabele als er een lokale variabele is met zelfde naam

U kunt de operator voor bereikresolutie gebruiken om toegang te krijgen tot de globale variabele als u een lokale variabele met dezelfde naam heeft. In het onderstaande voorbeeld hebben we twee variabelen, beide naamnummer met globaal en lokaal bereik. Dus om toegang te krijgen tot de globale num-variabele in de hoofdklasse, moet u de scope-resolutieoperator gebruiken (d.w.z. :: num).

Voorbeeld

#include using namespace std int num = 30 // Initialiseren van een globale variabele num int main () {int num = 10 // Initialiseren van de lokale variabele num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Uitvoer

Verderop met dit artikel over Scope Resolution Operator in C ++

hoe u het Java-programma afsluit

Een functie buiten een klas definiëren

Als u een functie in een klasse declareert en deze later buiten de klasse wilt definiëren, kunt u dat doen met de operator voor bereikresolutie. In het onderstaande voorbeeld declareren we een functie Speed ​​in Class Bike. Later definiëren we de functie in de hoofdklasse met behulp van de scoopresolutie-operator.

Voorbeeld

#include using namespace std class Bike {public: // Just the Function Declaration void Speed ​​()} // Definiëren van de Speed-functie buiten de Bike class met :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Uitvoer

Verderop met dit artikel over Scope Resolution Operator in C ++

Toegang krijgen tot de statische gegevens van een klas variabelen

U hebt toegang tot de statische variabele van de klasse met behulp van de class name & scope resolution operator (d.w.z. class_name :: static_variable). U kunt in het onderstaande voorbeeld zien dat we een statische variabele in de klasse declareren. We definiëren de variabele buiten de klasse met behulp van de scoopresolutie-operator. Vervolgens openen we het met behulp van de class name & scope resolution operator.

Voorbeeld

#include using namespace std class Probeer {static int num1 public: static int num2 // Lokale parameter verbergt klaslid // Klasse-lid is toegankelijk via :: void function (int num1) {// num1 statische variabele is toegankelijk met :: // ondanks de lokale variabele 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 } 

Uitvoer

Verderop met dit artikel over Scope Resolution Operator in C ++

Verwijzen naar een klas binnen een andere klas

U kunt in beide klassen geneste klassen met dezelfde variabelenamen maken. U hebt toegang tot beide variabelen met behulp van de scope-resolutieoperator. Voor de inner class-variabele moet u Outer_Class :: Inner_Class :: variabele.

Voorbeeld

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

Verderop met dit artikel over Scope Resolution Operator in C ++

In geval van meervoudige overerving

Als u twee bovenliggende klassen heeft met dezelfde variabelenamen en u ze allebei overneemt in de onderliggende klasse, dan kunt u de scope-oplossingsoperator gebruiken met de klassenaam om toegang te krijgen tot de individuele variabelen.

In het onderstaande voorbeeld maken we twee bovenliggende klassen Parent1 & Parent2, en beide hebben variabele num. Wanneer we ze allebei erven in de klasse Child, hebben we toegang tot beide num-variabelen met behulp van de class name & scope resolution operator.

Voorbeeld

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

Uitvoer

Verderop met dit artikel over Scope Resolution Operator in C ++

Naamruimte

Stel dat we twee naamruimten hebben en beide een klasse met dezelfde naam bevatten. Om conflicten te voorkomen, kunnen we de naamruimtenaam gebruiken met de operator voor bereikresolutie. In het onderstaande voorbeeld gebruiken we std :: cout .

Voorbeeld

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

Uitvoer

Nadat u de bovenstaande programma's hebt doorlopen, zou u alles hebben begrepen over de reikwijdte-oplossingsoperator in C ++. Ik hoop dat deze blog informatief en een meerwaarde voor je is.

Na het uitvoeren van het bovenstaande programma zou u de Scope Resolution Operator in C ++ hebben begrepen. Hiermee zijn we aan het einde gekomen van dit artikel over ‘Quicksort in Java’. Als je meer wilt weten, bekijk dan de Java Training van Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze blog en we nemen zo snel mogelijk contact met je op.