C++的標識符的做用域與可見性

  下面是關於C++的標識符的做用域與可見性學習記錄,僅供參考ios

標識符的做用域與可見性

  • 做用域是一個標識符在程序正文中有效的區域。函數

  • 做用域分類學習

    ①函數原型做用域spa

    ②局部做用域(快做用域)指針

    ③類做用域code

    ④文件做用域對象

    ⑤命名空間做用域blog

函數原形做用域ci

  • 函數原型中的參數,其做用域始於"(",結束於")"。作用域

  • 函數原形做用域舉例

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 

相關文章
相關標籤/搜索