Statische Einträge von Klassen in C++
So wie der bekannte Namensraum »::std« kann auch eine Klasse Einträge enthalten, bei denen es sich um Namen für verschiedene Entitäten, wie Werte oder Typen, handelt.
Wir zeigen hier einige Beispiele:
Der Name »::std« steht für den globalen Namensraum »std« aus dem globalen Namensraum »::«.
Der Name »::std::string« steht für die Klasse »string« aus dem Namensraum »::std«.
Der Name »::std::string::size_type« steht für den Eintrag »size_type« der Klasse »::std::string«.
Der Name »::std::string::size_type« steht für einen Typ.
Der Typ »::std::string::size_type« ist ein numerischer Typ, der für die Angabe von Positionen in Zeichenfolgen verwendet werden kann.
main.cpp
#include <initializer_list>
#include <ostream>
#include <iostream>
#include <string>int main()
{ ::std::string::size_type pos { 0 };
::std::cout << pos << '\n'; }- Protokoll
0
Der Name »::std::string::npos« steht für den Eintrag »npos« der Klasse »::std::string«.
Der Name »::std::string::npos« steht für einen Wert.
Der Name »::std::string::npos« hat den Typ »::std::string::size_type« und den größten Wert jenes Typs.
main.cpp
#include <initializer_list>
#include <ostream>
#include <iostream>
#include <string>int main()
{ ::std::cout << ::std::string::npos << '\n'; }Protokoll
18446744073709551615
Die gezeigten Beispiele zeigen, daß Klassen wie Namensräume verwendet werden können.
Um Einträge einer Klasse, wie die oben gezeigten, anzugeben, kann die Klasse wie ein Namensraum mit dem binären Bereichsauflösungsoperator »::« mit dem Namen ihres Eintrags verbunden werden. Einen Eintrag einer Klasse, der auf diese Weise angegeben werden kann, nennen wir einen statischen Eintrag der Klasse.