作用域

标识的 作用域 是程序文本的最大区域,该标识可能用于引用其对象。 在 C++ 中,要引用的对象必须唯一。 但是,可以复用用于访问对象的名称 (标识本身)。 标识的含义取决于使用标识的上下文。 作用域是用于区分名称含义的一般上下文。

标识的作用域可能是不连续的。 发生破损的方法之一是复用相同名称来声明不同的实体,从而创建包含的声明式区域 (内部) 和包含的声明式区域 (外部)。 因此,声明点是影响范围的一个因素。 利用非连续作用域的可能性是称为 信息隐藏的方法的基础。

C 中存在的作用域概念在 C++ 中得到了扩展和完善。 下表显示了作用域的种类以及术语的细微差别。
表 1. 作用域的种类
C C++
BLOCK 本地
FUNCTION FUNCTION
函数原型 函数原型
文件 全局名称空间
  名称空间
  CLASS
在所有声明中,标识位于初始化程序之前的作用域中。 以下示例对此进行了演示:
int x;
void f() {
  int x = x;
}
函数 f() 中声明的 x 具有局部作用域,而不是全局作用域。