21xrx.com
2024-12-22 22:33:30 Sunday
登录
文章检索 我的文章 写文章
C++中的::或怎么打
2023-07-12 00:31:34 深夜i     --     --
C++ scope resolution operator 全局作用域限定符 命名空间限定符

在C++中,双冒号(::)是作用域解析运算符,它有两种用途:访问命名空间或类中的成员,以及访问父类的成员。

如果在C++中定义了一个命名空间或一个类,它们中的成员可以被使用双冒号来访问。例如,如果我们定义了一个名为"Person"的类,它有一个名为"getName"的成员函数,我们可以这样访问:


Person p;

string name = p::getName();

如果"Person"类是另一个类"Student"的派生类,我们可以使用双冒号来访问它从"Person"中继承的成员:


Student s;

string name = s::Person::getName();

在上面的代码中,使用"::Person"告诉编译器我们要访问"Person"类的成员函数,而不是"Student"类中同名的成员函数。

除了命名空间和类的成员函数之外,双冒号也可以用来访问全局变量。例如:


int x = 10;

void foo()

  int x = 5;

  cout << "Local x = " << x << endl;

  cout << "Global x = " << ::x << endl;

int main() {

  foo();

}

在上面的代码中,"foo"函数中定义了一个叫"x"的局部变量,它的值是5。但是,使用"::x"来访问全局变量"x",它的值是10。

总之,在C++中,双冒号被称为作用域解析运算符,它可以用于访问命名空间、类、父类、全局变量等等。虽然双冒号有些麻烦,但它是C++中重要的一部分,必须熟练掌握。

  
  

评论区

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