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
广告