【笔记】C++系列02:连续的作用域解析运算符::的场景有哪些?

发布时间 2023-11-22 17:32:58作者: 哆啦梦乐园

在C++中,可以使用连续的作用域解析运算符::来访问嵌套的命名空间、类和类成员。这种用法通常在以下场景下出现:

  1. 命名空间嵌套:当命名空间中存在嵌套的命名空间时,可以使用连续的作用域解析运算符来访问内层命名空间中的成员。例如:
namespace A {
    namespace B {
        namespace C {
            void fun() {
                // 函数实现
            }
        }
    }
}

int main() {
    A::B::C::fun();  // 调用嵌套命名空间中的函数
    return 0;
}
  1. 类的静态成员访问:当类中存在静态成员时,可以使用连续的作用域解析运算符来访问静态成员。例如:
class A {
public:
    static void fun() {
        // 静态成员函数实现
    }
};

int main() {
    A::fun();  // 调用类的静态成员函数
    return 0;
}
  1. 嵌套类的成员访问:当一个类嵌套在另一个类中时,可以使用连续的作用域解析运算符来访问嵌套类的成员。例如:
class A {
public:
    class B {
    public:
        void fun() {
            // 成员函数实现
        }
    };
};

int main() {
    A::B obj;
    obj.fun();  // 调用嵌套类的成员函数
    return 0;
}

在这些场景中,使用连续的作用域解析运算符可以准确定位到所需的命名空间、类或类成员,并进行访问和调用。这有助于避免命名冲突和提供更精确的访问控制。