2010-01-12 8 views

Antwort

32

Um auf den Root-Namespace zu verweisen. Dies ist oft nützlich, wenn Ihre Klasse oder Ihr Namespace einen Namen verwendet, der auch im Stamm vorhanden ist, aber Sie möchten irgendwann auf die Stammversion verweisen.

Zum Beispiel, wenn ich new in meiner Klasse überladen habe, aber irgendwann auf den Standard (root) new verweisen möchte, würde ich ::new verwenden, um auf root new zu verweisen.

23

Um dies anzuzeigen, ist dies ein Namensraum auf oberster Ebene.

Es ist sehr ähnlich (aber nicht identisch) wie ein Verzeichnisname funktioniert. Ohne den führenden Doppelpunkt überprüft C++ zunächst, ob im aktuellen 'aktiven' Namespace ein Namespace dieses Namens vorhanden ist. Ist dies nicht der Fall, wird auf der obersten Ebene nach einem Namensraum des Namens gesucht.

Mit dem führenden doppelten Doppelpunkt überspringt C++ die erste Überprüfung und sucht nur nach einem Namespace auf oberster Ebene.

Verwandte Themen