Es wird gemunkelt, dass frühe C ++ - Implementierungen einen Punktoperator für den Namespace-Zugriff hatten. Es gibt eine Meinung, dass der Punkt bequemer ist als der moderne Doppelpunktoperator.
Was war der Grund für die Einführung des Doppelpunkts?
c++
language-design
history
Reich
quelle
quelle
::symbol
Suchesymbol
im globalen Namespace anstatt im aktuellen Namespace zu erzwingen. Das ist also zumindest eine Sache, die sehr verwirrend aussieht und wahrscheinlich noch mehr syntaktische Ambiguität in die Sprache einbringt, wenn Stattdessen wurde der Punktoperator verwendet.Antworten:
Wie von Jules beobachtet , hatten frühe C ++ - Implementierungen (CFront vor 1.0) einen Punkt für die Bereichsidentifikation.
Ein Punkt wurde auch in C mit Klassen (1980) verwendet. In der Tat ist dies ein einfacher Ausschnitt aus Classes: Eine abstrakte Datentyp-Funktion für die C-Sprache 1 :
(Der Code war ein Beispiel dafür, wie Mitgliedsfunktionen normalerweise "anderswo" definiert wurden.)
Dies
::
war eine der Ergänzungen zu C mit Klassen, die eingeführt wurden, um C ++ zu erzeugen.Der Grund wird von Stroustrup selbst angegeben:
( Eine Geschichte von C ++: 1979-1991 [2] Seite 21 - § 3.3.1)
Bjarne Stroustrup: "Klassen: Eine abstrakte Datentyp-Einrichtung für die C-Sprache" - Bell Laboratories Computer Science Technical Report CSTR-84. April 1980.
Bjarne Stroustrup: "Eine Geschichte von C ++: 1979-1991" - AT & T Bell Laboratories Murray Hill, New Jersey 07974.
quelle