Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Операция :: c++

#cpp


Где и как можно использовать операцию :: ?
    


Ответы

Ответ 1



:: - это оператор, который используется для уточнения (квалификации) имен. Бинарный оператор :: уточняет область видимости в которой находится имя. С левой стороны должна быть указана область видимости, с правой стороны - уточняемое имя. В качестве области видимости может быть использовано пространство имен (namespace) или тип. namespace NamespaceName { struct TypeName { typedef int NestedType; }; } NamespaceName::TypeName a; // имя TypeName находится в пространстве имен NamespaceName NamespaceName::TypeName::NestedType b; // имя NestedType находится в типе NamespaceName::TypeName decltype(a)::NestedType c; // имя NestedType находится в типе-результате decltype(a) Унарный оператор :: указывает что имя находится в глобальном пространстве имен. int x; int main() { int x; return ::x; // Глобальная переменная } Также как и для операторов . и ->, после :: может быть указано ключевое слово template, чтобы показать что далее в коде идет использование шаблона: struct X { template static void f(); }; template void g() { T::f<1>(); // Ошибка: "<" означает оператор меньше T::template f<1>(); // ОК, используется шаблон f<1> }

Комментариев нет:

Отправить комментарий