跳转到内容

C++ 编程

来自维基教科书,开放的书籍,开放的世界

变量也驻留在特定的 作用域。变量的作用域是决定变量生命周期的最重要的因素。进入作用域开始变量的生命周期,离开作用域结束变量的生命周期。当在作用域内时,变量是可见的,除非它被同一个作用域内的同名变量隐藏。变量可以处于全局作用域、命名空间作用域、文件作用域或复合语句作用域。

例如,在以下代码片段中,变量 'i' 仅在相应注释之间的行内处于作用域内

{
  int i; /*'i' is now in scope */
  i = 5;
  i = i + 1;
  cout << i;
}/* 'i' is now no longer in scope */

有一些特定的关键字可以延长变量的生命周期,并且复合语句定义它们自己的局部 作用域

// Example of a compound statement defining a local scope
{

  {
    int i = 10; //inside a statement block
  }

 i = 2; //error, variable does not exist outside of the above compound statement 
}

在同一作用域级别内两次声明同一个变量是错误的。

全局变量唯一可以定义的 作用域命名空间,这处理的是变量的可见性,而不是它的有效性,其主要目的是避免名称冲突。

当我们接触到类时,与变量相关的作用域的概念变得非常重要,因为构造函数在进入作用域时被调用,析构函数在离开作用域时被调用。

注意
变量应该尽可能地声明为局部变量,并尽可能晚地声明,并应立即初始化

华夏公益教科书