1.范圍解析運算符的作用
范圍解析運算符 :: 用於標識不同范圍內使用的標識符。
2.范圍解析運算符的使用
1)用於命名空間和類
namespace NamespaceA{ int x; class ClassA { public: int x; }; } int main() { NamespaceA::x = 1; NamespaceA::ClassA a1; a1.x = 2; }
2)沒有范圍限定符的表示全局命名空間。
namespace NamespaceA{ int x; } int x; int main() { int x; x = 0; // 全局命名空間 ::x = 1; NamespaceA::x = 2; }
3)標識通過 using 指定成員的命名空間的命名空間
namespace NamespaceB { class ClassB { public: int x; }; } namespace NamespaceC{ using namespace B; } int main() { NamespaceB::ClassB c_b; NamespaceC::ClassB c_c; c_b.x = 3; c_c.x = 4; }
4)標識嵌套的命名空間,標識嵌套的類
namespace NamespaceD{ namespace NamespaceD1{ int x; } } namespace NamespaceE{ class ClassE{ public: class ClassE1{ public: int x; }; }; } int main() { NamespaceD:: NamespaceD1::x = 6; NamespaceE::ClassE::ClassE1 e1; e1.x = 7 ; }
5)調用類的靜態成員
class ClassG { public: static int get_x() { return x;} static int x; }; int ClassG::x = 6; int main() { int gx1 = ClassG::x; int gx2 = ClassG::get_x(); }
6)用於枚舉
enum EnumA{ First, Second, Third }; int main() { EnumA enum_value = EnumA::First; }