声明区域

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语言标准中提供的上述示例程序及其说明，可以得出结论：名字的声明区域是它可能保持有效的最大的程序结构，如整个编译单元、整个命名空间、一对花括号{与}括起来的整个语句块、整个函数体（甚至包括函数的形参列表）、类定义（包括成员函数的定义）等等。

参考文献

C++