Das bedeutet, dass die Funktionen putenv()
und tzset()
vom Compiler im globalen Namespace nachgeschlagen werden.
Beispiel
%Vor%Auch bekannt als Scope-Auflösungsoperator
In C ++ werden die bereits deklarierten Elementfunktionen definiert (in der Header-Datei mit der Erweiterung .hpp oder der Erweiterung .h) einer bestimmten Klasse. In der .cpp-Datei kann man die üblichen globalen Funktionen oder die .cpp-Datei definieren Mitgliedsfunktionen der Klasse. Um zwischen den normalen zu unterscheiden Funktionen und die Member-Funktionen der Klasse, muss man die verwenden scope resolution operator (: :) zwischen dem Klassennamen und dem Mitgliedsfunktionsname, d. h. ship :: foo () wobei ship eine Klasse und foo () ist ist eine Memberfunktion des Klassenschiffes.
Beispiel aus Wikipedia:
%Vor%Das bedeutet: Nachschlagen der Funktion im globalen Namensraum.
Es wird der spezifisch unqualifizierte Name verwendet (im Gegensatz zu allem, was mit dem using
Schlüsselwort importiert wurde).
Der ::
ist der Scope-Resolution-Operator, er teilt dem Compiler mit, in welchem Umfang er die Funktion finden soll.
Wenn Sie zum Beispiel eine Funktion mit einer lokalen Variablen var
haben und eine globale Variable mit demselben Namen haben, können Sie auf den globalen zugreifen, indem Sie den Operator für die Bereichsauflösung voraussetzen:
Die IBM C ++ - Compiler-Dokumentation stellt dies so dar ( Quelle ):
Der Operator :: (scope resolution) wird verwendet, um versteckte Namen zu qualifizieren dass du sie immer noch benutzen kannst. Sie können den unären Bereichsoperator verwenden, wenn a Namespace-Bereich oder Name des globalen Bereichs wird durch einen expliziten Namen verborgen Deklaration desselben Namens in einem Block oder einer Klasse.
Dasselbe kann für Methoden innerhalb einer Klasse und Versionen desselben Namens außerhalb geschehen. Wenn Sie auf eine Variable, Funktion oder Klasse in einem bestimmten Namespace zugreifen möchten, können Sie folgendermaßen darauf zugreifen: <namespace>::<variable|function|class>
Eine Sache zu beachten, obwohl es ein Operator ist, ist es nicht einer der Operatoren, die überladen werden können.
Tags und Links c++ namespaces syntax