c++ два двоеточия в начале строки

Жалоба
Вопрос

Засел вот за изучение С++.
С конструкцией типа MyClass::myMethod(){/*...blah-blah-blah...*/} вроде более-менее понятно. Расширение области видимости имен или как-то так. (Хотя тоже не совсем понятно, почему всегда методы реализуются через это расширение, а не внутри тела класса..)
А вот что значит когда вызывается какой-то метод непонятно откуда типа:
::someStrangeMethod(param1, param2);
или
var1 = ::someStrangeMethod(param1, param2);

В процессе 1
Linux 4 года назад 6 Ответов 449 Просмотров 0

Ответов ( 1 )

    0
    6 лет назад
    Ответить

    :: - это оператор расширения области видимости. используется для получения доступа к элементам пространства имен. например, std::sort(*arr, pred);, sort - функция из пространства имен std ,мы получаем к ней доступ. ::func() означает, что func() находится в т.н. глобальном пространстве имен, и мы получаем доступ к элементу этого пространства имен.

Ваш ответ