作用域通常和变量捆绑在一起,限定了变量可用范围,同时也规定了变量的生命周期:何时创建、何时销毁。作用域通常分为:全局作用域和局部作用域。
全局作用域(全局变量)
在所用函数体外部定义的变量就是全局变量,具有全局作用域。它在main函数执行前创建,mian函数结束后销毁。下面的代码演示了全局变量的创建和销毁:
文字转载自:https://www.cnblogs.com/wangguchangqing/p/3556244.html
作用域通常和变量捆绑在一起,限定了变量可用范围,同时也规定了变量的生命周期:何时创建、何时销毁。作用域通常分为:全局作用域和局部作用域。
在所用函数体外部定义的变量就是全局变量,具有全局作用域。它在main函数执行前创建,mian函数结束后销毁。下面的代码演示了全局变量的创建和销毁:
class World
{
public:
World()
{
std::cout << "Hello world.\n" ;
}
~World()
{
std::cout << "Goodbye.\n";
}
};
World theWorld ;
int main()
{
std::cout << "Hello from main.\n" ;
return 0 ;
}
这段代码的执行结果是 :
theWorld对象在main函数执行前被创建,main结束后销毁。
局部作用域是一对大括号包围的区域,局部变量在在程序流进入其作用域时被创建,退出作用域时被销毁。下面一段代码演示了局部变量的创建和销毁:
class World
{
public :
World(int id)
:identifier(id)
{
std::cout << "Hello from " << identifier << ".\n" ;
}
World ()
:identifier(0)
{
std::cout << "Hello from default constructor .\n" ;
}
~World()
{
std::cout << "Goodbye from " << identifier << ".\n" ;
}
private:
const int identifier ;
};
World theWorld ;
int main()
{
World smallworld(1);
for(int i = 2 ; i < 4 ; i ++)
{
World aWorld(i);
}
World oneMoreWorld(4);
}
执行结果为:
说明: