C++ 識別符號的作用域
阿新 • • 發佈:2019-02-20
包括:區域性作用域、全域性作用域、檔案作用域、函式作用域、函式原型作用域、名空間作用域、類作用域
注意:潛在作用域,也就是同名變數的作用域問題。
1. 區域性作用域
指在函式定義或者複合語句中,從識別符號的定義點開始到函式或者複合語句結束之間的程式段。
在同一個區域性作用域內不能出現相同名字的兩個區域性變數(包括形參)。
一個函式內的複合語句又是一個區域性作用域,也就是在函式內有某個變數時,複合語句中可以有另外一個同名字的變數。
2. 全域性作用域
指對構成C++程式的所有原始檔。
在C++標準中,把全域性作用域歸於連線控制範疇。
通常把全域性識別符號的生命放在某個標頭檔案中。
3. 檔案作用域
指單獨的一個原始檔。
在全域性識別符號的定義中加上static修飾符,該全域性識別符號就變成了具有檔案作用域的識別符號。
4. 函式作用域
指由整個函式定義所構成的程式段。
語句標號(如goto語句中使用的語句標識)是唯一的具有函式作用域的識別符號。
5. 函式原型作用域
指用於函式宣告的函式原型,其中的形參的作用域從函式原型開始到函式原型結束。
如:void f(int x, double y); //其中的x和y的作用域從“(”開始到")"結束。
6. 名空間作用域
無名的名空間定義不能在其他地方呼叫
7. 類空間作用域