21xrx.com
2024-12-22 20:46:48 Sunday
登录
文章检索 我的文章 写文章
C++中的双冒号::有何含义?
2023-06-28 05:31:37 深夜i     --     --
C++ 双冒号 含义

C++中的双冒号::是一种作用域限定符,用于限定命名空间、类和类成员的作用域。

当使用命名空间或类的名称时,双冒号::可以帮助编译器找到正确的声明并避免命名冲突。例如,在命名空间中定义了一个名为foo的变量,在全局作用域中使用foo时,需要使用命名空间限定符::,如下所示:


namespace mynamespace

  int foo;

int main()

  mynamespace::foo = 42;

  return 0;

类成员函数也可以使用双冒号::来访问类的静态成员变量和函数。例如,以下代码中,静态成员变量s和静态成员函数print()均属于类A,通过类名加双冒号::来访问:


class A {

public:

  static int s;

  static void print() cout << "A::s = " << s << endl;

};

int A::s = 0;

int main() {

  A::s = 42;

  A::print();

  return 0;

}

此外,在嵌套类和命名空间中,双冒号::也有用。例如,以下代码中的类B是类A的嵌套类,在B的成员函数内使用A::foo来访问A类的静态变量:


class A {

public:

  static int foo;

  class B {

  public:

    void print()

      cout << "A::foo = " << A::foo << endl;

    

  };

};

int A::foo = 0;

int main() {

  A::foo = 42;

  A::B b;

  b.print();

  return 0;

}

总之,双冒号::是C++中一个重要的作用域限定符,用于区分不同作用域中的同名变量和函数,特别是在类和命名空间中。其用法基本上都是限制访问和实现封装性,同时确保代码的可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复