static

原创 2013年12月02日 17:06:52

1.在函数体内,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变。


2.在模块内(但在函数体外),一个被声明为静态的变量可以被模块内的所有函数访问,但是不能被模块外其他函数访问。


3.它是一个本地的全局变量。在模块内,一个被声明为static的函数,只可被模块内的其他函数调用,那就是说,这个函数被限制在它的模块范围内使用。

4.在类的范围内

(1)成员变量

  类的静态成员变量是属于整个类的,而不是属于某一个对象的,静态成员变量在内存中只存在一份供各个类的实例使用。而非静态成员变量在创建对象时都会创建属于当前创建对象的一份,这是属于这个对象自己的一份。
  静态成员变量一般在类的外部进行定义形式为:
  StaticClassName    MainClassName:: staticMemberName =value;
C++中所有的成员函数(静态/非静态)都存放在代码区,所有对象都享有这一份,但是静态成员函数和非静态成员函数在调用成员变量却有着限制

(2)静态成员函数不属于某个对象,它属于整个类,在类外部调用的时候你可以通过两种方式调用

  1)class:: staticMethod()
  2) classObject.staticMethod()
也正因为静态成员函数属于整个类,所以在其内部不存在this指针;而在非静态成员函数内部会存在一个隐藏的this指针,用来标定当前是哪个类的实例调用了此函数;
然后呢,静态成员函数不能直接调用类的非静态成员变量,因为从上边我们知道非静态成员变量在类的实例创建时才会分配内存,而我们的静态成员函数在类的实例创建之前就已经存在,你总不能去用还没创建的东西吧?

版权声明:开放

相关文章推荐

22_static video

  • 2016年03月28日 15:58
  • 11.18MB
  • 下载

Java static修饰成员变量

  • 2017年04月24日 22:15
  • 4KB
  • 下载

从内存分配角度分析c和java里的static 关键字.

即使作为Java的初学者, 对this 和 static 这两个关键字都不会陌生. 其实也不难理解:     this 关键字:  指的是对象的本身(注意不是类本身)  跟.net 语言的Me 关键字...
  • nvd11
  • nvd11
  • 2013年12月30日 00:05
  • 1673

wxWidgets-2.8.12-vc6-unicode-static.zip

  • 2016年02月04日 10:59
  • 35.43MB
  • 下载

Static and dinamic balance

  • 2013年12月04日 22:31
  • 3.45MB
  • 下载

接口中定义变量必须为public static final的原因

在interface里面的变量默认都是public static final 的。所以可以直接省略修饰符:  String param="ssm";//变量需要初始化  为什么接口...
  • a_long_
  • a_long_
  • 2016年06月21日 18:41
  • 2926

openssl static library

  • 2016年11月14日 08:36
  • 4.15MB
  • 下载

jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结

为什么使用该功能?项目中的每个页面都包含产品名称、Logo、版本等信息,我希望修改一处,其它所有的全部跟着变。 有同学会说那就都引用一个页面“”就Ok了;但是我希望这些信息都是可以通过后台代码修改的...

C语言中static详述

  • 2013年08月20日 06:28
  • 29KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:static
举报原因:
原因补充:

(最多只允许输入30个字)