Ref: http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Flanguage%2Fref%2Fclrc05cplr175.htm
C++ Scope Resolution Operator ::
The :: (scope resolution) operator is used to qualify hidden names so that you can still use them. You can use the unary scope operator if a namespace scope or global scope name is hidden by an explicit declaration of the same name in a block or class. For example:
int count = 0;
int main(void) {
int count = 0;
::count = 1; // set global count to 1
count = 2; // set local count to 2
return 0;
}
The declaration of count declared in the main() function hides the integer named count declared in global namespace scope. The statement ::count = 1accesses the variable named count declared in global namespace scope.
You can also use the class scope operator to qualify class names or class member names. If a class member name is hidden, you can use it by qualifying it with its class name and the class scope operator.
In the following example, the declaration of the variable X hides the class type X, but you can still use the static class member count by qualifying it with the class typeX and the scope resolution operator.
#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
}
本文介绍C++中作用域解析运算符(::)的使用方法。该运算符用于解决名称隐藏问题,允许开发者访问被局部声明所隐藏的全局变量或类成员。文章通过实例展示了如何使用作用域解析运算符来指定特定的作用域内的变量。
406

被折叠的 条评论
为什么被折叠?



