Wie kann ich den Scope Resolution Operator in C ++ am besten nutzen?



In diesem Artikel werden Sie in den Operator für die Bereichsauflösung in C ++ eingeführt und anschließend programmgesteuert demonstriert, um ein detailliertes Verständnis zu erhalten.

Wie der Name schon sagt, wird der Bereichsauflösungsoperator verwendet, um die ausgeblendeten Namen aufgrund variabler Bereiche abzurufen, sodass Sie sie weiterhin verwenden können. In diesem Artikel erfahren Sie, wie Sie den Bereichsauflösungsoperator in C ++ verwenden und wozu er sich von a unterscheidet .

In C ++ lautet der Bereichsauflösungsoperator ::. Der Operator für die Bereichsauflösung in C ++ kann verwendet werden für:





Lassen Sie uns nun anhand von Beispielen jeden Zweck einzeln verstehen.

Zugriff auf eine globale Variable, wenn eine lokale Variable mit vorhanden ist gleicher Name

Sie können den Bereichsauflösungsoperator verwenden, um auf die globale Variable zuzugreifen, wenn Sie eine lokale Variable mit demselben Namen haben. Im folgenden Beispiel haben wir zwei Variablen, beide Name num mit globalem und lokalem Gültigkeitsbereich. Um auf die globale num-Variable in der Hauptklasse zuzugreifen, müssen Sie den Bereichsauflösungsoperator (d. H. :: Num) verwenden.



Beispiel

#include using namespace std int num = 30 // Initialisieren einer globalen Variablen num int main () {int num = 10 // Initialisieren der lokalen Variablen num cout<< 'Value of global num is ' << ::num cout << 'nValue of local num is ' << num return 0 } 

Ausgabe

Fahren Sie mit diesem Artikel über den Scope Resolution Operator in C ++ fort



Definieren einer Funktion außerhalb einer Klasse

Wenn Sie eine Funktion in einer Klasse deklarieren und später außerhalb der Klasse definieren möchten, können Sie dies mit dem Bereichsauflösungsoperator tun. Im folgenden Beispiel deklarieren wir eine Funktion Geschwindigkeit in Class Bike. Später definieren wir die Funktion in der Hauptklasse mit dem Bereichsauflösungsoperator.

Beispiel

#include using namespace std class Bike {public: // Nur die Funktionsdeklaration void Speed ​​()} // Definieren der Speed-Funktion außerhalb der Bike-Klasse mit :: void Bike :: Speed ​​() {cout<< 'Speed of Bike is 90 KMPH' } int main() { Bike bike bike.Speed() return 0 } 

Ausgabe

Fahren Sie mit diesem Artikel über den Scope Resolution Operator in C ++ fort

Zugriff auf die Statik einer Klasse Variablen

Sie können auf die statische Variable der Klasse mit dem Operator Klassenname und Bereichsauflösung (d. H. Klassenname :: statische Variable) zugreifen. Sie können im folgenden Beispiel sehen, dass wir eine statische Variable in der Klasse deklarieren. Wir definieren die Variable außerhalb der Klasse mit dem Bereichsauflösungsoperator. Dann greifen wir mit dem Operator für Klassenname und Bereichsauflösung darauf zu.

Beispiel

#include using namespace std class Try {statisch int num1 public: static int num2 // Lokaler Parameter verbirgt Klassenmitglied // Auf Klassenmitglieder kann mit der Funktion :: void zugegriffen werden (int num1) {// auf statische Variablen kann mit zugegriffen werden :: // trotz lokaler Variable 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 } 

Ausgabe

Fahren Sie mit diesem Artikel über den Scope Resolution Operator in C ++ fort

Verweis auf eine Klasse innerhalb einer anderen Klasse

Sie können in beiden Klassen verschachtelte Klassen mit denselben Variablennamen erstellen. Sie können mit dem Bereichsauflösungsoperator auf beide Variablen zugreifen. Für die Variable der inneren Klasse müssen Sie verwenden Outer_Class :: Inner_Class :: Variable.

Finde das größte Element in Array Java

Beispiel

#include using Namespace std class Outside_class {public: int num class Inside_class {public: int num statisch int x}} int Outside_class :: Inside_class :: x = 5 int main () {Outside_class A Outside_class :: Inside_class B}

Fahren Sie mit diesem Artikel über den Scope Resolution Operator in C ++ fort

Bei mehrfacher Vererbung

Wenn Sie zwei übergeordnete Klassen mit denselben Variablennamen haben und beide in der untergeordneten Klasse erben, können Sie den Bereichsauflösungsoperator mit dem Klassennamen verwenden, um auf die einzelnen Variablen zuzugreifen.

Im folgenden Beispiel erstellen wir zwei übergeordnete Klassen Parent1 und Parent2, und beide haben die Variable num. Wenn wir beide in der Child-Klasse erben, können wir mit dem Operator für Klassenname und Bereichsauflösung auf beide num-Variablen zugreifen.

Beispiel

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

Ausgabe

Fahren Sie mit diesem Artikel über den Scope Resolution Operator in C ++ fort

Namespace

Angenommen, wir haben zwei Namespaces und beide enthalten eine Klasse mit demselben Namen. Um Konflikte zu vermeiden, können wir den Namespace-Namen mit dem Bereichsauflösungsoperator verwenden. Im folgenden Beispiel verwenden wir std::cout .

Beispiel

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

Ausgabe

Nachdem Sie die oben genannten Programme durchgearbeitet haben, haben Sie alles über den Bereichsauflösungsoperator in C ++ verstanden. Ich hoffe, dieser Blog ist informativ und bietet Ihnen einen Mehrwert.

Nachdem Sie das obige Programm ausgeführt haben, hätten Sie den Scope Resolution Operator in C ++ verstanden. Damit sind wir am Ende dieses Artikels über 'Quicksort in Java' angelangt. Wenn Sie mehr erfahren möchten, lesen Sie das Java-Training von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.