作用域運算子 “::”(C++學習筆記 10)
阿新 • • 發佈:2018-11-06
通常情況下,如果有兩個同名變數,一個是全域性的,另一個是區域性的,那麼區域性變數在其作用域內具有較高的優先權,它將遮蔽全域性變數。
如果希望在區域性變數的作用域內使用同名的全域性變數,可以在該變數前加上“::”,此時::avar代表全域性變數,“::”稱為作用域運算子。
例1: 全域性變數和區域性變數同名。
#include<iostream>
using namespace std;
int avar=10; //全域性變數avar
int main(){
int avar; //區域性變數avar
avar=25;
cout<< "avar is "<<avar<<endl; //將會輸出avar is 25
return 0;
}
例2: 作用域運算子的使用。
#include<iostream>
using namespace std;
int avar=10; //全域性變數avar
int main(){
int avar; //區域性變數avar
avar=25;
cout<<"local avar is "<<avar<<endl; //將會輸出 local avar is 25
cout<<"global avar is "<<::avar<<endl; //將會輸出 global avar is 10
::avar=80;
cout<<"avar is "<<avar<<endl; //將會輸出 avar is 25
cout<<"avar is "<<::avar<<endl; //將會輸出 avar is 80
return 0;
}