Где и как можно использовать операцию :: ?
Ответ
:: - это оператор, который используется для уточнения (квалификации) имен.
Бинарный оператор :: уточняет область видимости в которой находится имя.
С левой стороны должна быть указана область видимости, с правой стороны - уточняемое имя.
В качестве области видимости может быть использовано пространство имен (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
Комментариев нет:
Отправить комментарий