#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 { templatestatic void f(); }; template void g() { T::f<1>(); // Ошибка: "<" означает оператор меньше T::template f<1>(); // ОК, используется шаблон f<1> }
Комментариев нет:
Отправить комментарий