c++、static方法

c++、static方法

ID:37708577

大小:69.50 KB

页数:11页

时间:2019-05-29

c++、static方法_第1页
c++、static方法_第2页
c++、static方法_第3页
c++、static方法_第4页
c++、static方法_第5页
资源描述:

《c++、static方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向过程设计中的static  1、静态全局变量  在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:  //Example1  #include  voidfn();  staticintn;//定义静态全局变量  voidmain()  {n=20;  cout<

2、它被显式初始化);  静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;  静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。对于一个完整的程序,在内存中的分布情况如下图:  代码区//lowaddress  全局数据区  堆区  栈区//highaddress一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example1中的代码中将  staticintn;//定义静

3、态全局变量  改为  intn;//定义全局变量  程序照样正常运行。  的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:  静态全局变量不能被其它文件所用;  其它文件中可以定义相同名字的变量,不会发生冲突;  您可以将上述示例代码改为如下:  //Example2//File1  #include  voidfn();  staticintn;//定义静态全局变量  voidmain()  {n=20;  cout<  externin

4、tn;  voidfn()  {n++;  cout<

5、,作用域是所在的文件,其他的文件即使用extern声明也不能使用。  2、静态局部变量  在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。  我们先举一个静态局部变量的例子,如下:  //Example3  #include  voidfn();  voidmain()  {fn();  fn();  fn();  }  voidfn()  {staticintn=10;  cout<

6、,局部变量也相应失效。  但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。  静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。  静态局部变量有以下特点:  该变量在全局数据区分配内存;  静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;  静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;  它始终驻留在全局数据区,直到程序运行结束。但

7、其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;  3、静态函数  在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。  静态函数的例子:  //Example4  #include  staticvoidfn();//声明静态函数  voidmain()  { 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。