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
}
在同一作用域级别内两次声明同一个变量是错误的。
全局变量唯一可以定义的 作用域是命名空间
,这处理的是变量的可见性,而不是它的有效性,其主要目的是避免名称冲突。
当我们接触到类时,与变量相关的作用域的概念变得非常重要,因为构造函数在进入作用域时被调用,析构函数在离开作用域时被调用。