C++ 中范围解析运算符的作用是什么?


:: (范围解析) 运算符用于获取由于变量范围而隐藏的名称, 以便仍可使用。范围解析运算符既可用作一元运算符, 也可用作二元运算符

如果某个类似名称的声明在块或类中隐藏了 namespace 范围或全局范围名称, 则可以使用单个范围运算符。例如, 如果你有一个名为 my_var 的全局变量, 还有一个名为 my_var 的局部变量, 那么为了访问全局 my_var, 你需要使用范围解析运算符。例如,

示例

#include <iostream>  
using namespace std;  

int my_var = 0;
int main(void) {
   int my_var = 0;
   ::my_var = 1;  // set global my_var to 1
   my_var = 2;    // set local my_var to 2

   cout << ::my_var << ", " << my_var;
   return 0;
}

输出

这将给输出 −

1, 2

在主函数中声明的 my_var 声明隐藏了在全局 namepacae 范围中声明的整数 my_var。语句 ::my_var = 1 访问在全局 namespace 范围中声明的变量 my_var。

你也可以使用范围解析操作符来使用类名或类成员名。如果类成员名被隐藏,则可以使用其类名和类范围操作符对其进行前缀来使用它。例如:

示例

#include <iostream>
using namespace std;

class X {
   public:
   static int count;
};

int X::count = 10;      // define static data member
int main () {
   int X = 0;          // hides class type X
   cout << X::count << endl;   // use static member of class X
}

输出

这将给输出 −

10

更新于: 11-Feb-2020

422 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告