Heim >Backend-Entwicklung >C++ >Was macht der Bereichsauflösungsoperator (::) ohne Bereich?
Der Bereichsauflösungsoperator in einer Lücke
Der Bereichsauflösungsoperator (::) wird normalerweise verwendet, um auf Mitglieder eines bestimmten Bereichs zuzugreifen. Es kann jedoch auch ohne Scope verwendet werden, wie im folgenden Beispiel:
::foo();
Zweck des Scope Resolution Operators ohne Scope
Bei Verwendung Ohne einen Bereich bezieht sich der Bereichsauflösungsoperator auf den globalen Bereich. Dies bedeutet, dass auf Symbole zugegriffen wird, die nicht in einer bestimmten Klasse oder einem bestimmten Namensraum definiert sind.
Beispiel für die Verwendung des Bereichsauflösungsoperators ohne Bereich
Bedenken Sie den folgenden Code:
void bar(); // this is a global function class foo { void some_func() { ::bar(); } // this function is calling the global bar() and not the class version void bar(); // this is a class member };
Im obigen Beispiel gibt es zwei bar()-Funktionen: eine ist eine globale Funktion und die andere ist eine Klassenmitgliedsfunktion. Wenn Sie bar() innerhalb der Klassenmitgliedsfunktion some_func() aufrufen, wird die Klassenmitgliedsfunktion aufgerufen. Durch die Verwendung von ::bar() können Sie jedoch explizit auf die globale Funktion bar() zugreifen.
Zusammenfassend bezieht sich der Bereichsauflösungsoperator ohne Bereich auf den globalen Bereich, sodass Sie von dort aus auf globale Symbole zugreifen können jeden Kontext. Dies ist besonders nützlich, wenn Sie zwischen mehreren Symbolen mit demselben Namen unterscheiden müssen oder wenn Sie innerhalb einer Klassenmitgliedsfunktion auf globale Symbole zugreifen müssen.
Das obige ist der detaillierte Inhalt vonWas macht der Bereichsauflösungsoperator (::) ohne Bereich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!