聲明區域

C++ 語言中 ， 名字的聲明區域 （ declarative region ） ， 是指一個名字在程序文本中可能有效的最大的區域 ， 在這個區域中 ， 未受限定的該名字綁定到同一個實體 。 例如 ： int j = 24; int main { int i = j, j; j = 42; } 名字j被聲明瞭兩次並被使用了兩次 。 第一個被聲明的j的聲明區域是整個例子程序 。 第一個j的潛在作用域 （ potential scope ） 在這個名字被聲明處之後 ， 並持續至程序的末尾 。 但第一個j的 （ 實際 ） 作用域應排除逗號, 與右花括號 } 之間的程序區域 。 第二個被聲明的j （ 在分號之前的那個j ） 的聲明區域是一對花括號 { 與 } 括起來的整個程序區域 （ 也即main函數的函數體 ）, 但第二個j的潛在作用域應排除名字i的聲明 。 第2個j的 （ 實際 ） 作用域與它的潛在作用域相同 。 由C + +11 語言標準中提供的上述示例程序及其說明 ， 可以得出結論 ： 名字的聲明區域是它可能保持有效的最大的程序結構 ， 如整個編譯單元 、 整個命名空間 、 一對花括號 { 與 } 括起來的整個語句塊 、 整個函數體 （ 甚至包括函數的形參列表 ） 、 類定義 （ 包括成員函數的定義 ） 等等 。