声明区域

C++语言中,名字的声明区域(declarative region),是指一个名字在程序文本中可能有效的最大的区域,在这个区域中,未受限定的该名字绑定到同一个实体。

例如:
int j = 24;
int main() {
int i = j, j;
j = 42;
}
名字j被声明了两次并被使用了两次。第一个被声明的j的声明区域是整个例子程序。第一个j的潜在作用域(potential scope)在这个名字被声明处之后,并持续至程序的末尾。但第一个j的(实际)作用域应排除逗号,与右花括号}之间的程序区域。第二个被声明的j(在分号之前的那个j)的声明区域是一对花括号{与}括起来的整个程序区域(也即main函数的函数体),{{refGT|1=C++11语言标准,§3.3.1.2:The declarative region of the second declaration of j (the j immediately before the semicolon) includes all the text between { and } }}但第二个j的潜在作用域应排除名字i的声明。第2个j的(实际)作用域与它的潜在作用域相同。

由C++11语言标准中提供的上述示例程序及其说明,可以得出结论:名字的声明区域是它可能保持有效的最大的程序结构,如整个编译单元、整个命名空间、一对花括号{与}括起来的整个语句块、整个函数体(甚至包括函数的形参列表)、类定义(包括成员函数的定义)等等。

参考文献

评论 (0)

  • 还没有评论,来抢沙发吧。