//
::
01 作用域符 运算符中等级最高 ( 左结合性 )
02 分类
01 全局 作用域符 eg. ::name
02 类 作用域符 eg. class::name
03 命名空间 作用域符 eg. namespace::name
03 作用: 准确调用目标变量
程序某处调用:
01 全局变量 a ::a;
02 class A 的成员变量 a A::a;
03 namespace std 的成员 cout std::cout;
04 和内置函数重名的自定义函数 ::min();
( 修改函数名也可以解决 )
( 这里加上 :: 表示 无论其他地方有无 min 函数 这里只使用我自己定义的 )
04 实例:
01 处理重名:
01 类成员重名 A::i; B::i;
02 变量重名 ( 全局变量和局部变量 )
02 class A 里面声明了成员函数 int f();
却在 A 外面定义 f() ——> int A::f(); 表示这个 f() 函数 是 class A 的成员
03 System::Math::Sqrt(); <==> >System.Math.Sqrt();
//
// eg.03.04
#include<bits/stdc++.h>
using namespace std;
int min( int a,int b )
{
return a<b?a:b;
}
int main()
{
int a=1,b=2;
printf("%d\n",::min(a,b));
}
// 可能的输出:
// 1
=====================================
// eg.04.01
#include<bits/stdc++.h>
using namespace std;
int a;
int main()
{
int a;
a=10; // 局部变量
::a=1; // 全局变量
printf("%d %d\n",a,::a);
return 0;
}
// 可能的输出:
// 10 1
=====================================
// eg.04.02
class A
{
public:
int i;
int f( int a );
};
int A::f( int a )
{
return a+::i; // 这里的 :: 表示使用 class A 里面的变量 i
}
|