下面是關于C++的識別符號的作用域與可見性學習記錄,僅供參考
識別符號的作用域與可見性
-
作用域是一個識別符號在程式正文中有效的區域,
-
作用域分類
①函式原型作用域
②區域作用域(快作用域)
③類作用域
④檔案作用域
⑤命名空間作用域
函式原形作用域
-
函式原型中的引數,其作用域始于"(",結束于")",
-
函式原形作用域舉例
double area(double radius);
區域作用域
-
函式的形參、在塊中宣告的識別符號;
-
其作用域自宣告處起,限于塊中,
-
區域作用域舉例
1 void fun(int a) { 2 int b = a; 3 cin >> b; 4 if (b > 0) { 5 int c; 6 7 ...... 8 } 9 }
類作用域
-
類的成員具有類作用域,其范圍包括類體和非行內成員函式的函式體,
-
如果在類作用域以外訪問類的成員,要通過類名(訪問靜態成員),或者該類的物件名、物件參考、物件指標(訪問非靜態成員),
檔案作用域(靜態作用域)
-
不在前述各個作用域中出現的宣告,就具有檔案作用域,這樣宣告的識別符號其作用域開始于宣告點,結束于檔案尾,
可見性
-
可見性是從對識別符號的參考的角度來談的概念
-
可見性表示從內層作用域向外層作用域“看”時能看見什么,
-
如果標識在某處可見,就可以在該處參考此識別符號,
-
如果某個識別符號在外層中宣告,且在內層中沒有同一識別符號的宣告,則該識別符號在內層可見,
-
對于兩個嵌套的作用域,如果在內層作用域內宣告了與外層作用域中同名的識別符號,則外層作用域的識別符號在內層不可見,
例如
1 #include<iostream> 2 3 using namespace std; 4 5 int i; //全域變數,檔案作用域 6 7 int main(void) 8 { 9 i = 5; 10 { 11 int i; //區域變數,區域作用域 12 13 i = 7; 14 cout << "i =" << i << endl; 15 } 16 cout << "i= " << i <<endl; 17 return 0; 18 }
運行結果
1 i=7 2 i=5
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/261230.html
標籤:C++
