Fork me on GitHub

C++作用域限定符“::”

“ :: “是作用域限定符(field qualifier)或称作用域运算符,用它声明函数是属于哪个类的.

如果在作用域运算符“::”的前面没有类名,或者函数名前面既无类名又无作用域运算符“::”,如

1
2
::display( )
display( )

则表示display函数不属于任何类,这个函数不是成员函数,而是全局函数,即非成员函数的一般普通函数。作用在于区分同名的全局变量(或函数)和局部变量(或函数)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
int sum=0;

int main()
{
int n,a[N],sum=0;
cin>>n;

for(int i=0;i<n;i++){
cin>>a[i];
}

for(int i=0;i<n;i++){
if(i%2==0) sum+=a[i];
::sum+=a[i];
}

cout<<"all="<<::sum<<' '<<"odd="<<sum;
return 0;
}

全局变量sum用来求数组的全部和,局部变量sum用来求奇数小标元素的和。

您的鼓励是我持之以恒的动力