Он , по слухам , что в начале C ++ реализация имела точечный оператор для доступа пространства имен. Существует мнение, что точка более удобна, чем современный оператор с двойным двоеточием.
Что послужило причиной введения двойного двоеточия?
c++
language-design
history
Богатый
источник
источник
::symbol
заставить его искатьsymbol
в глобальном пространстве имен вместо текущего пространства имен, так что это по крайней мере одна вещь, которая выглядела бы очень запутанно и, вероятно, привнесла бы еще большую синтаксическую неоднозначность в язык, если Вместо этого был использован точечный оператор.Ответы:
Как заметил Жюль , это факт, что ранние реализации C ++ (CFront до 1.0) имели точку для определения области видимости.
Точка была также использована в C с классами (1980). На самом деле это простой фрагмент из Classes: абстрактный тип данных для языка C 1 :
(код был примером того, как функции-члены обычно определялись «в другом месте»)
Это
::
было одно из дополнений к C с классами, введенными для создания C ++.Причина дана самим Страуструпом:
( История C ++: 1979–1991 гг. [2], стр. 21 - § 3.3.1)
Бьярн Страуструп: «Классы: средство абстрактного типа данных для языка Си» - Технический отчет по информатике Bell Laboratories CSTR − 84. Апрель 1980 г.
Бьярн Страуструп: «История C ++: 1979–1991» - AT & T Bell Laboratories Murray Hill, Нью-Джерси 07974.
источник