作用域通常和变量捆绑在一起,限定了变量可用范围,同时也规定了变量的生命周期:何时创建、何时销毁。作用域通常分为:全局作用域和局部作用域。
在所用函数体外部定义的变量就是全局变量,具有全局作用域。它在main函数执行前创建,mian函数结束后销毁。下面的代码演示了全局变量的创建和销毁:
1: class World
2: {3: public:
4: World() 5: {6: std::cout << "Hello world.\n" ;
7: } 8: 9: ~World() 10: {11: std::cout << "Goodbye.\n";
12: } 13: }; 14: 15: World theWorld ; 16: 17: int main()
18: {19: std::cout << "Hello from main.\n" ;
20: return 0 ;
21: }这段代码的执行结果是 :
theWorld对象在main函数执行前被创建,main结束后销毁。
局部作用域是一对大括号包围的区域,局部变量在在程序流进入其作用域时被创建,退出作用域时被销毁。下面一段代码演示了局部变量的创建和销毁:
1: class World
2: {3: public :
4: World(int id)
5: :identifier(id) 6: {7: std::cout << "Hello from " << identifier << ".\n" ;
8: } 9: 10: World () 11: :identifier(0) 12: {13: std::cout << "Hello from default constructor .\n" ;
14: } 15: ~World() 16: {17: std::cout << "Goodbye from " << identifier << ".\n" ;
18: } 19: 20: private:
21: const int identifier ;
22: }; 23: 24: World theWorld ; 25: 26: int main()
27: { 28: World smallworld(1); 29: 30: for(int i = 2 ; i < 4 ; i ++)
31: { 32: World aWorld(i); 33: } 34: 35: World oneMoreWorld(4); 36: }执行结果为:
说明:
最近在看《程序员修炼之道》,里面说:“程序员向别人解释他所做的事情都会有困难。”。自己知道,但是写出来或者讲述给别人,对于我来说确实有点困难。写篇博客都费劲…
,中学时候的语文没学好啊。以后要加强锻炼,坚持写下去!
原文:http://www.cnblogs.com/wangguchangqing/p/3556244.html